0

現在の jQuery は value 属性を選択します。データ属性「data-price」を選択するように jQuery を変更するにはどうすればよいですか?

$('#trapfabric, #trapsize').on('change', function() {
  var $selected = $('#trapfabric, #trapsize').children(":selected");
  sum = parseInt($('#trapsize').val()) + parseInt($('#trapfabric').val());
  $('#priceToSwap3').html('$' + sum
    );
});

上記のようなものを適合させる必要があることはわかっていますが、機能させることはできません:

$('#priceToSwap3').text($selected.data("price"))

編集済み

私のHTML:

<span id="priceToSwap3"">$238</span>

<select id="trapsize" onChange="swapImage()">
 <option data-price="238">foo</option>
 <option data-price="288">foo</option>
</select>

<select id="trapfabric" onChange="swapImage()">
 <option data-price="0">foo</option>
 <option data-price="20">foo</option>
</select>
4

3 に答える 3

1

使用する必要のある要素を取得する場合は#trapsize、イベントを2つの要素にバインドしています。#trapfabricsource$(this)

jsfiddle

$('#trapfabric, #trapsize').on('change', function() {    
    $('#priceToSwap3').text( '$' + $(':selected', this).data("price") );
});
于 2013-03-01T11:13:57.800 に答える
1

これがあなたが望むものだと思います:

var $elements = $('#trapfabric, #trapsize');
$elements.on('change', function() {
     var $selected = $elements.children(":selected");
     var sum = 0;

     $selected.each(function() {
         sum += $(this).data('price');
     });

     $('#priceToSwap3').html('$' + sum);
});

選択した要素を繰り返し処理して、priceそれぞれのデータを取得する必要があります。

デモ

于 2013-03-01T12:04:06.607 に答える