如何在代码中使用变量?

时间:2018-06-08 15:27:47

标签: javascript

如何使用变量缩短代码,而不是每次都使用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;

我尝试过创建变量,如:

$res = explode(",",$value);
foreach ($res as $v){
    echo "tester: >> $v"."<br \>\n"; 
}

2 个答案:

答案 0 :(得分:0)

尝试使用以下内容:

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')

答案 1 :(得分:0)

您可以将变量设置为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来替换。添加到元素的任何属性或事件侦听器都将丢失。

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