0

データIDと値を持つWebページにセレクターがあります

HTML

    <select id="s1">
        <option data-id="01">aaaa1</option>
        <option data-id="23">bbb1</option>
        <option data-id="451">ccc1</option>
        <option data-id="56">ddd1</option>

    </select>

<p></p>

ジャバスクリプト

$('#s1').change(function() { 
       var val = $(this).val();   
       var val_id =$(this).find('option').data('id');
       $("p").html("value = " + val + "<br>" +"value-data-id = "+  val_id);
});

選択したセレクターと彼のデータ ID から実際の値を取得したい。最初のオプションのみからデータ ID を取得する理由がわかりません。これは私のコードですhttp://jsfiddle.net/s55rR/ バグを見つけるのを手伝ってください。

4

3 に答える 3

6

できます$(this).find('option:selected').data('id')

于 2013-10-25T18:38:54.473 に答える
4

複数の要素( $(this).find('option')) を選択しましたが.data()、長さが 1 を超える jQuery で呼び出された場合、最初の要素の値のみが返されます。

説明: HTML5 属性 または HTML5 属性によって設定された、jQuery コレクションの最初の要素の名前付きデータ ストアの値を返します。data(name, value)data-*

data-iduser-selectedの値のみ<option>が必要な場合は、その要素のみを選択する必要があります。

于 2013-10-25T18:38:03.077 に答える
3

すべてのオプションを選択し、jQuery.data('id')が最初のオプションを返すため

var val_id =$(this).find('option:selected').data('id');

フィドル

于 2013-10-25T18:38:39.343 に答える