javascript / jQuery找到所有字符串并替换 - 但是

时间:2014-10-17 11:21:02

标签: javascript jquery

找到所有单词并替换 - 但只包含链接中未包含的单词。

<div class="test">

<br />
<a href="#">TEST</a>
<br />
TEST
</div>

<div class="test">

<br />
<a href="#">TEST</a>
<br />
TEST
</div>

仅查找所有“TEST”,链接中不存在。

1 个答案:

答案 0 :(得分:0)

您可以使用contents()来避免过滤DOM文本节点(默认情况下jQuery会这样做):

http://jsfiddle.net/TrueBlueAussie/Ln1Lvakc/7/

$('.test').contents().filter(function () {
    return this.nodeType == 3 && $.trim(this.nodeValue) == "TEST";
}).replaceWith("hello!");

备注:

  • nodeType 3是文本节点
  • $.trim是一个方便的jQuery静态方法来修剪字符串(因为并非所有浏览器都有.trim字符串)
  • 在这种特殊情况下,您实际上并不需要修剪,但它取决于HTML中的空格