如何在jQuery中替换嵌套标签后的文本

如何在jQuery中替换嵌套标签后的文本

在这篇文章中,我们将看到如何使用jQuery替换嵌套标签后的文本。有一个主要的方法可以遵循。

方法:我们使用click()、contents()和filter()方法以及this、nodeType和nodeValue属性。有一个id为outer-tag的分部元素,里面嵌有一个类为nested-tag的span标签。还定义了一个按钮,在点击时替换嵌套标签后的文本。我们使用 click() 方法给按钮附加一个点击事件。

这个方法包含一个匿名函数,在点击按钮时执行。我们选择div元素,并使用contents()方法获得其所有子节点,包括任何文本节点。

接下来,我们使用filter()方法过滤所有这些是文本节点的子节点。简单地使用nodeType属性检查每个子节点的节点类型。如果nodeType属性的返回值为3,那么给定的节点就是一个文本节点。现在,为了得到嵌套标签后的文本,我们通过索引(索引1)在所有过滤的文本节点中选择第二个文本节点。为了替换所选文本节点的文本值,我们使用nodeValue属性来帮助我们设置文本节点的新值。

例子:在这个特殊的例子中,嵌套标签后的原始文本是” C.S hub for geeks.”。我们用上面讨论的方法将这个文本替换为” Computer Science portal for geeks.”。

<!DOCTYPE html>
<html>
  
<head>
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
    </script>
  
    <!-- Basic inline styling -->
    <style>
        body {
            text-align: center;
        }
  
        button {
            margin-top: 2rem;
            cursor: pointer;
        }
    </style>
</head>
  
<body>
    <h2 style="color:green">GeeksforGeeks</h2>
    <p>jQuery - Replace text after a nested tag</p>
      
    <div id="outer-tag">
        <span class="nested-tag">
            GeeksforGeeks is a </span> C.S. hub for geeks.
    </div>
    <button>Click me to change text after nested tag</button>
    <script type="text/javascript">
  
        ("button").click(function () {
            ("#outer-tag").contents().filter(function () {
                return this.nodeType == 3;
            })[1].nodeValue = "Computer Science portal for geeks.";
        });
    </script>
</body>
  
</html>

输出:

如何在jQuery中替换嵌套标签后的文本?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

jQuery 方法