关于JavaScript中replace()函数替换没有效果的一种解决方案
定义和用法
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
语法
stringObject.replace(regexp/substr,replacement)
参数 | 描述 |
---|---|
regexp/substr |
必需。规定子字符串或要替换的模式的 RegExp 对象。 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 |
replacement | 必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
但是,在做练习的时候想要把某个标签内的文本内容替换掉,且传的参数都是变量,发现调用了replace()函数并没有完成替换,输出在控制台,发现虽然内部已经完成了替换,但是在页面上并没有显示出效果,
ul[0].getElementsByTagName(\'li\')[0].innerHTML.replace(new RegExp(sOld,\'g\'),sNew);
解决:
var change = ul[0].getElementsByTagName(\'li\')[0].innerHTML.replace(sOld,sNew); ul[0].getElementsByTagName(\'li\')[0].innerHTML = change;
最后通过定义一个变量保存把replace()的执行结果,再把这个变量赋值给要改变的内容即可实现功能。