替换似乎不起作用

时间:2015-05-23 23:21:07

标签: javascript replace

我有两个使用.replace的代码示例。一个不起作用,我想了解原因。

这不起作用:

var code = document.body.innerHTML;
code=code.replace(/11/g,"22");
code=code.replace(/any/g,"anything");

但是,这样做:

document.body.innerHTML=document.body.innerHTML.replace(/11/g,"22");
document.body.innerHTML=document.body.innerHTML.replace(/any/g,"anything");

2 个答案:

答案 0 :(得分:1)

如果您使用

var code = document.body.innerHTML;

code是一个包含字符串的变量,而不是引用。

因此,修改code不会神奇地更新document.body.innerHTML

您可以使用以下其中一种:

var document.body.innerHTML = document.body.innerHTML
    .replace(/11/g,"22")
    .replace(/any/g,"anything");
var b = document.body; // Reference to an object
b.innerHTML = b.innerHTML
    .replace(/11/g,"22")
    .replace(/any/g,"anything");

但请注意,innerHTML会返回HTML字符串,但you can't parse (X)HTML with regex.

答案 1 :(得分:0)

看起来很正常。无论您使用“代码”变量做什么,都需要在最后将其分配回文档。您可以使用变量,但最后,您应该添加:document.body.innerHTML = code