2015-01-05 229 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

相關問題