答案 0 :(得分:1)
调用string.replace会返回包含替换文本的新字符串,而不会修改原始字符串本身。
所以你的代码:
replaced = haystackText.replace(...)
将更新的文本设置为变量“replacement”,但从不更新变量“haystackText”。
此外,既然你这样做了:
if (haystackText.length == 0) {
haystackText = document.getElementById("haystack").innerHTML;
}
它只会在第一次调用方法时设置haystackText,而不是第二次。看起来你不需要将haystackText作为全局变量(在方法之外),所以改变这个:
if (haystackText.length == 0) {
haystackText = document.getElementById("haystack").innerHTML;
}
到此:
var haystackText = document.getElementById("haystack").innerHTML;
可以解决您的问题。