基本查找替换单词

时间:2011-06-07 14:04:15

标签: javascript

我想要的只是将几个单词替换为其他单词。我尝试了以下但是它会冲突并破坏网站的其他元素,例如AJAX元素等。

document.body.innerHTML = document.body.innerHTML.replace(/searchword/g, "resultword");

我也很确定这只是一个相当不优雅的方法,只需在大列表中为多个单词执行此操作。感谢。

2 个答案:

答案 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')