0

我有这个 javascript 代码,它基本上是(几乎)相同的 3 个,但替换不同:

var d = document;
d.body.innerHTML = d.body.innerHTML.replace(/foo/g,'fooo');
d.body.innerHTML = d.body.innerHTML.replace(/foobar/g,'fooobaaar');
d.body.innerHTML = d.body.innerHTML.replace(/foobarlicious"/g,'');

有没有可能以某种方式最小化它?

我试过这个(知道它行不通):

d.body.innerHTML = d.body.innerHTML.replace(/foo/g,'fooo'),
                   d.body.innerHTML.replace(/foobar/g,'fooobaaar'),
                   d.body.innerHTML.replace(/foobarlicious"/g,'');

当然它没有......

我也尝试 var document.body.innerHTMLas

var dbi = document.body.innerHTML;

这也不起作用,只是有var d = document;这个不起作用的原因吗?

4

2 回答 2

3

链接.replace()方法:

d.body.innerHTML = d.body.innerHTML.replace(/foo/g,'fooo').replace(/foobar/g,'fooobaaar').replace(/foobarlicious"/g,'');

...但是您可以保留一些空白以使其可读:

d.body.innerHTML = d.body.innerHTML.replace(/foo/g,'fooo')
                                   .replace(/foobar/g,'fooobaaar')
                                   .replace(/foobarlicious"/g,'');

关于dbi您询问的变量:

我还尝试将 var document.body.innerHTML 作为

var dbi = document.body.innerHTML;

这也不起作用,只是有var d = document;这个不起作用的原因吗?

您的dbi变量将是一个设置为正文 html 初始值的字符串,但它不保留到文档正文的实时链接。您可以对该变量进行替换或其他操作,但要查看文档中的更改,您必须将其重新分配:

document.body.innerHTML = dbi;

d = document的工作有效,因为d是对文档本身的实时引用。

于 2013-09-13T22:23:36.880 回答
1

如上所述,将它们链接起来,或者将innerHTML 存储为变量,并在您根据需要编辑变量后设置innerHTML。

var iH = document.body.innerHTML;
iH = iH.replace(/foo/g,'fooo');
iH = iH.replace(/foobar/g,'fooobaaar');
iH = iH.replace(/foobarlicious"/g,'');
document.body.innerHTML = iH;

然而,正如已经提到的,编辑正文的 innerHTML并不是一个好主意。

于 2013-09-13T22:25:33.223 回答