2015-01-05 123 views
-2

我使用Google地图来获取两个地点之间的距离和时间。用另一个用javascript替换单词?

这工作得很好...

不过,我想更换一些文本/已吐出,从谷歌地图API我的网页上用我自己的文本/单词。

例如:我想更换aboutETA:

这是我的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代替这个词:

这里是我的全部代码:

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

可能有人请告知这个问题?

在此先感谢。

+2

'document.getElementsByClassName(“ADP-摘要”)innerHTML'失败,因为getElementsByClassName方法()的'的返回值'是:这可以通过收集,处理比方说,通过遍历它被固定节点列表,而不是单个元素。 –

+0

我强烈推荐使用jQuery。使事情变得更容易。 http://api.jquery.com/replacewith/ –

+0

@FrédéricHamidi,所以没有办法取代文本? – william

回答

1

正如评论所说,document.getElementsByClassName返回了你的选择,这就是为什么你不能设置.innerHTML匹配的HTMLCollection。 。

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: ') 
} 
+0

如上所述,它不起作用 –

+0

,它不起作用。 – william

+0

什么不行?循环播放adpSummary?字符串替换? – Flynn

0

如果只使用本地js,替换只替换字符串的第一个实例。

您可以循环而指数检查:

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

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

多看这里: Why does javascript replace only first instance when using replace?

+0

试过这个,它并不取代这个词。 – william

+0

适合我。 http://jsfiddle.net/mq4juk5m/ – Buck3y3

+0

这不是我的代码在你的jsfiddle!我认为这与我的代码无关。 – william

相关问题