2013-08-06 33 views
3

我經常使用這種表示法,當我命名我的控件,以獲得POST或GET中的數組。GetElementsByName與名稱相似的數組

<input name="color[1]" type="text" /> 
<input name="color[2]" type="text" /> 
<input name="color[3]" type="text" /> 

所以在我的劇本,我可以做

<?php $data=$_GET["color"]; 
for each ($color as $key=>$value) { 
    doSomething(); 
} ?> 

經常發生的情況,我需要讓這些ID後面的JavaScript,但我不能讓他們,所以我經常在ID添加到每個元素HTML一樣,

<input name="color[3]" id="color_3" type="text" /> 

,這樣我可以使用document.getElementsById( 'color_3')

相反,我禾喜歡找到使用document.getElementsByName(color [3])的方法... 但我真的無法真正實現它的工作。

任何幫助?

回答

3
<input name="color[3]" id="color_3" type="text" /> 

var element = document.getElementsByName("color[3]"); 

alert(element[0].id); 

它工作正常..你應該在你的心中的事情是返回類型爲元素的數組不是一個單一的元素

+0

我要再試一次。我嘗試過,並嘗試與Firefox的控制檯.... 確定它的工作原理...我可以發誓今天上午,在我的房間,沒有工作.. 任何機會,我可以寫 xxx在一些XML?我不認爲我可以用「[」裏面寫xml標籤名稱。 – AndreaBogazzi

+0

@AndreaBogazzi你可以用這種方式編寫xml ..看到這裏:http://jsfiddle.net/xE6bh/ –

+0

如果我這樣寫的話,我會得到「非常好的」... <?xml version =「1.0 「編碼=」 ISO-8859-1 「?> \t \t 火腿 \t 0.00 \t 6.00 \t Ñ小號小號小號 AndreaBogazzi

6

如果你想所有的色彩輸入,可以使用querySelectorAll而不是查詢的name屬性:

document.querySelectorAll("input[name^='color[']") 

這看起來通過文檔的所有input標籤的名字屬性與color[開始。 Here是一個小提琴。

如果你只是想color[3],你可以使用:

var color3 = document.getElementsByName("color[3]"); 
console.log(color3[0]);