替换function只能工作一次(javascript)

每次str1在特定div中显示时,我需要用另一个字符串(str2)替换字符串(str1)。

这是我到目前为止所得到的

 $(window).load(function(){ var str=document.getElementById("foo").innerHTML; var n=str.replace("Google","Yahoo"); document.getElementById("foo").innerHTML=n; });  

和HTML

 
Google is the best website ever
Google is not the best website ever

不幸的是,当我运行它时,它只取代了谷歌这个词的第一个实例。

我究竟做错了什么? 我需要添加什么来使它替换所有单词的实例?

使用regex /string/g替换所有出现的事件,您正在使用substring,它将根据replace()函数的文档仅替换第一次出现。

现场演示

 var n=str.replace(/Google/g,"Yahoo"); 

String.prototype.replace() replace()方法返回一个新字符串,其中一个或所有匹配的模式由替换替换。 模式可以是字符串或RegExp,替换可以是字符串或要为每个匹配调用的函数。

str.replace(regexp | substr,newSubStr | function)

您正在使用substr模式,它将仅替换首次出现。

substr(模式)

要由newSubStr替换的String。 它被视为逐字字符串,不会被解释为正则表达式。 只会替换第一次出现。

使用此正则表达式模式替换所有出现。

正则表达式(模式)

一个RegExp对象或文字。 匹配由参数#2的返回值替换。