Javascript 查找并替换正文中的所有字符串,但忽略具有字符串值的属性
使用Javascript/jQuery,我希望找到并替换所有“foo”的实例到bar,但忽略所有碰巧是属性值的“foo”实例 例如:Javascript 查找并替换正文中的所有字符串,但忽略具有字符串值的属性,javascript,jquery,Javascript,Jquery,使用Javascript/jQuery,我希望找到并替换所有“foo”的实例到bar,但忽略所有碰巧是属性值的“foo”实例 例如: <p><a class="foo" id="foo" href="foo.html">foo</a>foo</a></p> foo 应该成为 <p><a class="foo" id="foo" href="foo.html"><span class="fixed">
<p><a class="foo" id="foo" href="foo.html">foo</a>foo</a></p>
foo
应该成为
<p><a class="foo" id="foo" href="foo.html"><span class="fixed">bar</span></a></p>
这个例子就是我遇到的问题
关于foo
在该示例中,链接的属性也会更改您可以使用.html(函数)
.replace()
,使用RegExp
/foo/g
和替换字符串“bar”
。如果回调函数中的此不包含。childNodes
返回text
参数,并将替换(/foo/g,“bar”)
链接,否则迭代元素的子节点,匹配中的节点。nodeName
是#text
,替换匹配节点的。textContent
。使用Node.replaceChild()
将匹配的#text
节点替换为
元素
$(“body*”).html(函数(\ux,文本){
如果(!this.children.length){
返回文本。替换(/foo/g,'bar'))
}
否则{
var el=这个;
对于(变量i=0;i
福
关于foo
然后只替换文本内容而不是内部HTML。您是否需要处理foo
?@T.J.Crowder否,只是想替换是否找到了确切的字符串“foo”。此示例就是我遇到的问题About foo
在该示例中,链接的属性被更改为当我使用该代码段时,其中的所有HTML都被剥离,我认为这是因为使用了.text()而不是.HTML()@Hochmia请参阅更新的帖子。修复了一个问题,但跨度是作为文本而不是HTML插入的。我想把字符串包装成一个span,但span显示为文本。你是什么意思?最初的问题是替换文本,而不是创建元素,是吗?如果文本节点将.textContent
设置为“foo”
,则该节点是
元素的子节点,则会发生什么情况?很抱歉造成混淆。简而言之,需要找到字符串'foo'并替换为'bar'。我遇到的问题是,如果HTML元素类或id中存在“foo”,JS将替换它并破坏标记。