2012-02-29 105 views
1

可能重複:
JavaScript retrieving the text of the selected option in select element如何傳遞innerHTML參數?

<select name="users" onchange="showUser(this.value)"> 
<option value="">Select a person:</option> 
<option value="1"> Option1 </option> 
<option value="2"> Option2 </option> 
<option value="3"> Option3 </option> 
<option value="4"> Option4 </option> 
</select> 

從上面的例子中,整數值被通過使用THIS.VALUE傳遞給showUser功能。如果不是傳遞值,我想傳遞選項標籤內的任何內容,比如「Option1」,我該怎麼做?我曾嘗試使用

showUser(this.innerHTML) 

但這似乎並沒有工作,或者我正在接近它不正確。我在網上查找了使用getElementByID的選項,但是我想我需要每個選項的唯一ID。

+0

我看着這個之前,但是我想避免此特定情況下的元素ID。 – user1152440 2012-02-29 16:45:27

+0

然後只需忽略'getElementById'步驟。你已經有了對元素的引用('this')。使用它。 – 2012-02-29 17:04:53

回答

4

你會使用:

showUser(this.selectedIndex >= 0 ? this.options[this.selectedIndex].text : ''); 

HTMLSelectElementHTMLOptionsElement的DOM2 HTML規範的文檔。

+0

如果我在最後用雙引號「」替換單引號「',上面的代碼完美地工作。 (我認爲這是因爲onchange已經被引號包圍了)。謝謝您的回覆。 – user1152440 2012-02-29 16:42:10

1

在這方面,this指<選擇>元素,而不是所選擇的選項< >。我想你想要做的showUser(this.options[this.selectedIndex].innerHTML)

+0

該解決方案完美運行。 – user1152440 2012-02-29 16:43:16

2

HTML:

<select name="users" onchange="showUser(this)"> 
    <option value="">Select a person:</option> 
    <option value="1"> Option1 </option> 
    <option value="2"> Option2 </option> 
    <option value="3"> Option3 </option> 
    <option value="4"> Option4 </option> 
</select> 

的javascript:

function showUser(obj){ 
    alert(obj.options[obj.selectedIndex].innerHTML); 
} 

小提琴:http://jsfiddle.net/vPhq3/1/

+0

謝謝你的回覆,這也適用! – user1152440 2012-02-29 16:44:18

+0

歡迎你好友..很高興幫助你.. – 2012-02-29 17:48:08