如何在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>
输出: