如何通过innerHTML参数?

时间:2012-02-29 15:24:33

标签: javascript html

  

可能重复:
  JavaScript retrieving the text of the selected option in select element

<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。

3 个答案:

答案 0 :(得分:4)

您将使用:

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

请参阅DOM2 HTML规范的HTMLSelectElementHTMLOptionsElement文档。

答案 1 :(得分: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/

答案 2 :(得分:1)

在此上下文中,this指的是&lt; select&gt;元素,而不是选中的&lt;选项&gt;。我想你想做showUser(this.options[this.selectedIndex].innerHTML)