Javascript 如何在代码中使用变量?

Javascript 如何在代码中使用变量?,javascript,Javascript,如何使用变量来缩短代码,而不是每次都使用document.body.innerHTML function smurfa() { document.body.innerHTML = document.body.innerHTML.replace(/Katt/g,'Caca'); document.body.innerHTML = document.body.innerHTML.replace(/katt/g,'caca'); document.body.i

如何使用变量来缩短代码,而不是每次都使用
document.body.innerHTML

function smurfa() {    
     document.body.innerHTML = document.body.innerHTML.replace(/Katt/g,'Caca'); 
     document.body.innerHTML = document.body.innerHTML.replace(/katt/g,'caca'); 
     document.body.innerHTML = document.body.innerHTML.replace(/morr/g,'prutt');
     document.body.innerHTML = document.body.innerHTML.replace(/Morr/g,'Prutt');      
     }
我尝试过创建如下变量:

var where=document.body.innerHTML   
var morf= document.body.innerHTML.replace(/Morr/g,'Prutt')   
var results= where + morf;
results;

尝试使用类似以下内容:

function smurfa(regex, replace) {
  document.body.innerHTML = document.body.innerHTML.replace(regex, replace);
  return smurfa;
}

smurfa(/Katt/g,'Caca')(/katt/g,'caca')(/morr/g,'prutt')(/Morr/g,'Prutt')

您可以将变量设置为
document.body
,因为这是一个对象,您可以更新其属性。为属性本身设置变量将不起作用;变量不是对属性的引用,它们通过值获取属性

var b = document.body;
b.innerHTML = b.innerHTML.replace(/Katt/g, 'Caca');
您还可以链接替换:

b.innerHTML = b.innerHTML.replace(/Katt/g, 'Caca').replace(/katt/g, 'caca').replace(/morr/g, 'prutt').replace(/Morr/g, 'Prutt');
您还可以将函数用作替换,一次完成所有替换:

b.innerHTML = b.innerHTML.replace(/katt|morr/gi, function(match) {
    const replacements = { 'Katt': 'Caca', 'catt': 'caca', 'morr': 'prutt', 'Morr': 'Prutt' };
    return replacements[match];
});
顺便说一句,像这样替换整个
document.body
通常是个坏主意。它导致整个DOM被丢弃,并通过重新解析其HTML来替换。添加到元素的任何属性或事件侦听器都将丢失


相反,您应该编写一个循环来查找所有文本节点,并替换它们的文本内容。

location
是一个窗口属性。重命名该变量,使其不与任何具有特殊意义的窗口属性冲突您的问题在哪里???这不起作用:(任何建议?函数smurfa(){var where=document.body.innerHTML var morf=document.body.innerHTML.replace(/Katt/g,'Caca')document.body.innerHTML.replace(/Katt/g,'Caca'))document.body.innerHTML.replace(/morr/g,'prutt')document.body.innerHTML.replace(/morr/g,'prutt')var result=where+morf;result;}好的,你已经展示了你的尝试,这是a的第一阶段。现在你需要告诉我们你尝试的时候发生了什么,以及你想要发生什么。现在,这里没有什么可以回答的。好的,谢谢你的回答。我想替换所有出现的单词“Katt”,“Katt”,“Morr”和“Morr”to->“Caca”,“Caca”等等。如果我像前面所说的那样写出来,它就可以工作了:document.body.innerHTML=document.body.innerHTML.replace(/Katt/g,'Caca');但是代码很长,如果可能的话,我想用变量来代替。谢谢你,它工作了!很好的洞察力,我也会尝试文本节点。