gpt4 book ai didi

javascript - jQuery:替换链接内的文本但不替换标签中的文本

转载 作者:太空宇宙 更新时间:2023-11-04 16:00:46 25 4
gpt4 key购买 nike

我有一个 html:

<div class="sth-key">
<p>
key here <span class="keyify">and here a key</span>
<a href="/key-anything" title="dont change that key">and a key</a>
</p>
<p>
and the final <strong>key</strong>
</p>
</div>

我想用“pencil”替换不在属性内的词“key”,所以输出看起来像这样:

<div class="sth-key">
<p>
pencil here <span class="keyify">and here a pencil</span>
<a href="/key-anything" title="dont change that key">and a pencil</a>
</p>
<p>
and the final <strong>pencil</strong>
</p>
</div>

我试过用

$('.sth-key p').each(function(){
$(this).html($(this).html().replace('key','pencil'));
});

或使用 text()... 但它不起作用。

最佳答案

您必须使用 .contents() 方法来搜索 DOM 树中这些元素的直接子元素。

此外,您必须使用 replace方法以替换您的文本。

我用了each()函数以遍历 p 元素的所有子元素。

nodeType 属性以数字形式返回指定节点的节点类型。

以下是主要节点类型:

If the node is an element node, the nodeType property will return 1.

If the node is an attribute node, the nodeType property will return 2.

If the node is a text node, the nodeType property will return 3.

$('.sth-key p').each(function(){
$(this).contents().each(function () {
if (this.nodeType === 3)
this.nodeValue=$(this).text().replace("key", "pencil")
if(this.nodeType===1)
$(this).html( $(this).html().replace("key", "pencil") )
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sth-key">
<p>
key here <span class="keyify">and here a key</span>
<a href="/key-anything" title="dont change that key">and a key</a>
</p>
<p>
and the final <strong>key</strong>
</p>
</div>

关于javascript - jQuery:替换链接内的文本但不替换标签中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41838391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com