替换html文档的内容

时间:2013-11-14 06:15:31

标签: javascript html

我正在尝试使用javascript将所选单词替换为html文档中的单词。

的JavaScript

var node=document.body;
var childs=node.childNodes;
var n=childs.length,i=0;

while (i < n) {
    node=childs[i];
    if (node.nodeType == 3) {
        if (node.textContent) {
            node.nodeValue=node.nodeValue.replace("injected","hai");
        }
    }
    i++;
}

但是字符串没有被替换...请帮助

3 个答案:

答案 0 :(得分:3)

最后添加document.body=node;。当您将节点设置为相等的主体时,您正在复制该值,而不是通过引用对其进行编辑。

答案 1 :(得分:2)

我不确定你为什么要直接使用文本节点。 console.log上的nodeValue表示您的代码中既未检索也未设置显示标记的textContent。

这很有效。 Live demo here (click).

<p>something to be replaced.</p>

和js:

var childs = document.body.childNodes;

var len = childs.length;
for (var i=0; i<len; ++i) {
  var node=childs[i];
  if (node.nodeName === 'P') {
    node.textContent = node.textContent.replace("to be replaced","was replaced");
  }
}

答案 2 :(得分:1)

使用String replace方法有一个更简单的方法。例如,您可以将页面正文转换为字符串,并使用正则表达式替换单词。这意味着您可以避免遍历整个DOM和节点列表,这对您的任务来说是不必要的慢。

document.getElementByTagName("body")[0].innerHTML.replace("injected","hai")