2013-02-28 92 views
0

我一直在嘗試幾個小時,並且在StackOverflow上查找了很多示例,但我無法修復我的簡單腳本。用Javascript替換所有innerhtml文本

我抓住DOM使用jQuery

var color = $('#bscontainer').html(); 

,現在顏色的內容是:

<img src="resources/P/Blue_BG_2Col.png" id="bg"> 
<img src="resources/P/Blue_Content_2Col.png" id="content"> 
<img src="resources/P/Blue_Title_ExchangeRate.png" id="title"> 
<img src="resources/P/Blue_SubTitle_2Col.png" id="subtitle"> 
<img src="resources/P/Blue_Disclaimer_Disclaimer.png" id="disclaimer"> 

我的想法是把所有的藍色變成綠色了,我已經嘗試:

curColor="Blue"; 
newColor="Green"; 
t=color.replace(curColor,newColor); 

它根本不起作用。有任何想法嗎?

+1

@Blazemonger有點苛刻:) – mattytommo 2013-02-28 21:50:49

+0

它適合我。你必須在代碼中做錯你沒有提供的東西,或者你希望代碼中的東西比正在使用的方法提供的更多。 – 2013-02-28 21:51:26

+0

我不明白你想在這裏做什麼..解釋更好 – j0hnstew 2013-02-28 21:51:41

回答

0

所以基本上你想找到的每個圖像在color元素並在src屬性Green更換Blue - 這是一種方式,你可以做到這一點:

var color = $('#bscontainer'); 
color.find('img').each(function(){ 

    curColor="Blue"; 
    newColor="Green"; 
    this.src = this.src.replace(curColor,newColor); 

}); 

無需的.html()部分你的代碼...

+0

這一個效果最好! – 2013-02-28 22:04:16

0

要直接回答您的問題,請以JavaScript代替字符串參數作爲針頭,只替換第一個實例。替換字符串中的所有情況下,使用全局正則表達式:

str.replace(/Blue/g, 'Green'); 

你真的應該只修改img標籤的src屬性雖然。這是更正確的方法來攻擊這一點。像你一樣嘗試更改HTML會失去綁定到DOM元素的任何事件或數據。

+0

藍色和綠色的問題其實是一個變量...例如,var curColor =「Blue」; var newColor =「Green」; 我不能使正則表達式的作品,當我使用變量 – 2013-02-28 22:04:41

+0

@ user2121401你可以,如果你構建一個[正則表達式對象]​​(http://stackoverflow.com/questions/15146302/replace-all-innerhtml-text-with -javascript/15146398#15146398)。 – Blazemonger 2013-02-28 22:27:52

+0

用戶:http://www.w3schools.com/js/js_obj_regexp.asp – 2013-03-01 14:01:03