39

私がこのコードを持っている場合:

 <select onchange="alert('?');" name="myname" class="myclass"> 
    <option isred="-1" value="hi">click</option>
 </select>

カスタム属性isredから値「-1」を取得するにはどうすればよいですか?valueプロパティを使用したくありません。そして、名前やIDでオプションタグをターゲットにしたくありません。

こんなもの欲しいonchange="alert(this.getselectedoptionID.getAttribute('isred'));"

誰か助けてもらえますか?

また、jqueryは使いたくありません。

4

7 に答える 7

73

selectedIndexが何であるかを理解し、getAttributeそのoptions[]配列から理解する必要があります。

<select onchange="alert(this.options[this.selectedIndex].getAttribute('isred'));" name="myname" class="myclass"> 
    <option isred="-1" value="hi">click</option>
    <option isred="-5" value="hi">click</option>
</select>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

jsFiddleデモ

補足として:

でインラインJavaScriptを使用しないでくださいHTML。ビジネスロジックをUIから分離する必要があります。これを処理する代わりに、javascriptイベントハンドラーを作成します。(jQuery / Angular /など)

于 2012-08-14T17:38:55.060 に答える
30

jquery では、次のように記述できます。

$("#myname").find(':selected').attr('isred');
于 2013-11-12T13:45:31.167 に答える
8

次のようなものを使用します。

document.getElementById("x").onchange = function () {
    console.log(this.options[this.selectedIndex].getAttribute("isred"));
};
于 2012-08-14T17:38:21.607 に答える
1

あなたが使う:.getAttribute('isred')

あなたがしたい:

<select onchange="alert(this.options[this.selectedIndex].getAttribute('isred'));" name="myname" class="myclass">
    <option isred="-1" value="hi">click</option>
    <option isred="-1" value="ho">click</option>
</select>
于 2012-08-14T17:35:50.867 に答える