我有这个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.innerHTML
作为
var dbi = document.body.innerHTML;
这也没有用,因为只有var d = document;
才有理由为什么这不起作用?
答案 0 :(得分: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
变量:
我还尝试将document.body.innerHTML改为
var dbi = document.body.innerHTML;
这也没有用,因为只有
var d = document;
才有理由说这不起作用?
您的dbi
变量将是一个字符串,设置为正文html的初始值,但它不保留文档正文的实时链接。您可以对该变量进行替换或其他操作,但要查看文档中的更改,您必须将其分配回来:
document.body.innerHTML = dbi;
您的d = document
内容有效,因为d
是对文档本身的实时引用。
答案 1 :(得分: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;
如前所述,编辑body的innerHTML 不是一个好主意。