2013-07-21 90 views
1

在HTML中我有很多OD的div的名字(是的,名字,沒有標識)分別爲P001,P002,P003 ......這是這樣的:使用Javascript - 更改元素在指定的元素SRC

<div id="pole" name="p001"><img src=""></div> 
<div id="pole" name="p002"><img src=""></div> 
<div id="pole" name="p003"><img src=""></div> 

etc ...

在Javascript中,我已經定義了名爲'pos'的變量,其中包含一個數字,現在爲:「284」 和一個應該將img src更改爲「player.png」的函數。 我嘗試2種方式,沒有這些工作:

document.getElementsByName('p'+pos).innerHTML='<img src="player.png">'; 

document.getElementsByName('p'+pos).getElementsByTagName("img").src="player.png"; 

如何改變IMG SRC這是在指定的DIV?

+0

如果您希望您的html有效,並且您希望避免javascript衝突,那麼您的div必須具有不同的ID。 – Stefan

+1

'div'元素沒有定義''name''屬性。當使用'getElementsByName'獲取'div'元素時,您的代碼至少在IE8中失敗並且會降低。 –

回答

5

getElementsByName返回元素的列表,而不是一個單一的元素,所以嘗試:

所有的
document.getElementsByName('p'+pos)[0]. 
    getElementsByTagName("img")[0].src="player.png"; 
0

首先,我想你應該在你的div標籤切換nameid屬性。您不能擁有多個具有相同ID的元素,但可以有多個具有相同名稱的元素。

<div name="pole" id="p001"><img src=""></div> 
<div name="pole" id="p002"><img src=""></div> 
<div name="pole" id="p003"><img src=""></div> 

解決你的問題,你可以使用DOM的firstChild屬性,如果img永遠是你的div標籤的第一個孩子。

document.getElementById('p'+pos).firstChild.src="player.png"; 
+0

'name'不是div的有效屬性。 'name'應該在這裏是'class'。 – Stefan