我必须替换所有div中的一些字符,但是当我运行代码时,该函数也替换了我的html标签字符
我的代码是:
$("#main").children().each(function() {
$(this).html($(this).html().replace(/s/g, "K"));
})
<div id="main">
<p>Some contents that will be replaced... <span>this will not be in a span tag :(</span></p>
</div>
结果:
<div id="main">
<p>Kome contentK that will be replaced... <Kpan>this will not be in a Kpan tag :(</Kpan></p>
</div>
答案 0 :(得分:3)
如果您的目标是保留div中的所有标记,但替换所有这些标记中的文本,则很难。您需要只找到文本节点而不是其他节点,并在每个文本节点中单独进行替换。
这个问题可能有所帮助:How do I select text nodes with jQuery?