使用 javascript 将单词替换为另一个单词?

Replace word with another one using javascript?

我正在使用 Google 地图来获取两个位置之间的距离和时间。

这很好用...

但是,我想用我自己的 texts/words.[=14 替换一些 texts/words 从 google 地图 api 我的页面上吐出来的东西=]

例如:我想将 about 替换为 ETA:

这是我的 javascript 代码来替换单词:

<script>

function myFunction() {
    var str = document.getElementsByClassName("adp-summary").innerHTML; 
    var res = str.replace("about", "ETA: ");
    document.getElementsByClassName("adp-summary").innerHTML = res;
}
</script>

但不幸的是,这没有任何作用,也没有用 ETA:.

替换 about 这个词

这是我的全部代码:

http://jsfiddle.net/dvw37ktu/1/

有人可以就此问题提出建议吗?

提前致谢。

如果只使用原生js,replace只会替换字符串的第一个实例。

您可以在索引检查时循环:

while(str.indexOf("about") > -1)
{
//do replace here 
}

或者更好的选择是使用正则表达式。

在此处查看更多信息: Why does javascript replace only first instance when using replace?

如评论中所述,document.getElementsByClassName 返回与您的选择器匹配的 HTMLCollection,这就是您无法设置 .innerHTML 的原因。这可以通过处理集合来解决,比如说,通过遍历它:

var adpSummary = document.getElementsByClassName("adp-summary");
for (var i = 0; i < adpSummary.length; i++) {
  // Do string replacement on adpSummary[i]
  adpSummary[i].innerHTML = adpSummary[i].innerHTML.replace(new RegExp('about', 'gm'), 'ETA: ')
}