我想要的只是将几个单词替换为其他单词。我尝试了以下但是它会冲突并破坏网站的其他元素,例如AJAX元素等。
document.body.innerHTML = document.body.innerHTML.replace(/searchword/g, "resultword");
我也很确定这只是一个相当不优雅的方法,只需在大列表中为多个单词执行此操作。感谢。
答案 0 :(得分:0)
我会使用类似下面的例子
Recursively Loop Through All Nodes
然后检查其nodeType
。如果它的== 3表示它是一个文本节点,那么只需在节点的nodeValue
上进行替换。
答案 1 :(得分:0)
从包含您要搜索的所有文本的父元素开始(直到正文),替换每个文本节点中的文本。
如果您有一个包含许多替换项的大页面,您可能需要使用计时器将其拆分,或隐藏父元素,直到完成所有替换。否则,每次更改都会重新绘制页面。
function replaceText(node, find, rep){
if(node){
node= node.firstChild;
while(node!= null){
if(node.nodeType== 3){
node.data= node.data.replace(find, rep);
}
else{
if(node.hasChildNodes()) replaceText(node, find, rep);
}
node= node.nextSibling;
}
}
return true;
}
replaceText(document.body的,/ E / G, 'E')