2013-12-16 87 views
2

我有這樣一段代碼:如何改變選擇選項在Javascript

<select name="commentselected" id="commentselected"> 
<option value="0">Text for Value 0</option> 
<option value="1">Text for Value 1</option> 
<option value="2">Text for Value 2</option> 
</select> 

,我試圖用這個命令來更改值:

document.getElementsByName('commentselected').selectedIndex[2]; 

,但它不工作。任何想法?

回答

1

getElementsByName返回 元素數組 an HTMLCollection需要建立索引。

此外,的selectedIndex是財產需要被設置

document.getElementsByName('commentselected')[0].selectedIndex = 2; 

這裏有一個simple demo


此外,由於你的選擇已經有一個id,你還不如使用getElementById,like this

+0

['getElementsByName'](http:// www .w3.org/TR/DOM-Level-2-HTML/html.html#ID-71555259)會返回一個[HTMLCollection](http://www.w3.org/TR/DOM-Level-2-HTML/html .html#ID-75708506),而不是一個數組,它與數組唯一的相似之處在於能夠通過索引選擇成員 – RobG

+0

Thanks @Adam Rackis – maniootek

0

A亞當說,你需要設置屬性和getElement * s * - note複數 - 返回一個數組,即使該數組只包含1個元素。所以,如果你有多個名爲「commentselected」的元素,爲了得到你的選擇,你將不得不遍歷整個數組並搜索'type = select'...不是一個非常有效的代碼位

如果您需要訪問1個元素,則使用getElementById ...這就是爲什麼ID屬性是唯一的,以確保只有一個具有該ID的元素。

+0

getElementsByName始終會返回一個HTML集合,即使沒有匹配。 – RobG