2012-02-29 8 views
1

可能性の重複:
innerHTML引数を渡すには?

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"のようにoptionタグの中にあるものの内容を渡したかったのですが、どうすればいいですか?私は使用しようとしました

showUser(this.innerHTML) 

しかし、それは動作していないようです、または私は間違ってそれに近づいています。私はgetElementByIDを使うためのオプションをオンラインで見てきましたが、すべてのオプションに一意のIDが必要だと思います。

あなたが使用したい
+0

しかし、私がしようとしていますこの特定のケースの要素IDは避けてください。 – user1152440

+0

その後、 'getElementById'ステップを無視してください。あなたはすでに要素への参照を持っています( 'this')。それを使用してください。私が最後に単一引用符「」で「二重引用符」を交換する場合 –

答えて

4

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

HTMLSelectElementHTMLOptionsElementのDOM2 HTML仕様のドキュメントを参照してください。この文脈において

+0

上記のコードは完璧に動作します。 (私はこれがonchangeがすでに引用符で囲まれているからだと思います)。ご返信ありがとうございます。 – user1152440

1

thisは>要素ではなく、選択された<オプション>を選択<を指します。私は、あなたがしたいと思いますshowUser(this.options[this.selectedIndex].innerHTML)

+0

このソリューションは完全に機能します。 – user1152440

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

+0

あなたは歓迎です..あなたを助けてうれしい.. –