我有以下功能
function replacer(oldstring, newstring) { document.body.innerHTML = document.body.innerHTML.replace(oldstring, newstring); }
我希望能够替换任何文本如果不在以下标记内
<a id="word">some text</a>
或< >字符之间。
请告诉我,当 oldstring 位于 a 标记内或 < > 字符之间时,是否有办法跳过。
提前谢谢您!
最佳答案
替换正文的innerHTML从来都不是一个好方法,它会导致整个页面的重新渲染,这可能会产生不良效果。
您可以在页面中搜索字符串:
- IE:range.findText()
- 其他(歌剧除外):window.find()
如果找到任何元素,则确定该范围的父元素节点(或者如果需要的话,其祖先之一)是否是要排除的元素节点。如果没有,请替换文本。
不幸的是,上述两种方法都不适用于歌剧。
关于javascript - 标记特定字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6383383/