メソッドに渡された選択オプションからデータ属性にアクセスしようとしています。これは可能ですか?一例として、選択したオプションをメソッドに渡してデータ属性にアクセスする
は、次のように私は私のhtmlで選択リストがあるとします。
<div class="col-md-3">
<select id="mySelect" name="mySelect">
<option value="1" data-data1="AB" data-data2="WX">Route1</option>
<option value="2" data-data1="CD" data-data2="YZ">Route2</option>
</select>
</div>
配線アップイベントハンドラと、ユーザーの選択を取得しても、イベントハンドラが細かい内のデータの属性にアクセスします。
<script>
$(function() {
$("select[name='mySelect']").on('change', function() {
var selection = $(this).find('option:selected');
//no problem accessing the attributes here:
var data1 = selected.data('data1');
var data2 = selected.data('data2');
//but what if I want to pass the selection object to a method?
doSomething(selection);
});
});
次の方法で属性値を取得するアプローチはどちらも機能しません。これは可能ですか?もしそうなら、私は何が欠けていますか?
function doSomething(selection)
{
var data1 = selection.data('data1');
var data2 = selection.data('data2');
var data3 = $(selection).data('data1');
var data4 = $(selection).data('data2');
}
</script>
だけでなく、あなたが名前のセレクターを使用して、IDを持っている...そして、あなたが選択しているとそれがさえ変数ではないの内側に...それらを修正し、それが動作します。.. – epascarello
ええ、申し訳ありませんが、私はすぐに例をノックアップし、名前属性を省略しました。 – mattpm