0

私はこのドロップダウンコードを持っています:

$('#addDropdown').click(function() {
   var $d = $('<select class="dropdown"><option selected="selected" value="null" rel="null">Choose your data!</option><option value="1" rel="2">Option 1</option><option value="1" rel="2">Option 2</option><option value="14" rel="15">Option 3</option></select><input type="number" min="1" max="99" class="multiplier" name="multiplier" value="1" size="3"/><br/>').fadeIn().delay(1000);

   $('#dropdownContainer').append($d);
});

このコードを使用して値をajax関数に渡します。ボタンを使用して、同じ値のドロップダウンをさらに追加します。

    var dropdowns = $(".dropdown"),
        one = [],
        two = [],
        mult = [];

 for(var i = 0; i < dropdowns.length; i++) {
   one.push(dropdowns.eq(i).find('option:selected').attr('rel'));
   two.push(dropdowns.eq(i).val());
   mult.push(dropdowns.eq(i).val() * dropdowns.eq(i).find('input[name=multiplier]').val())
 }

マルチオプションの場合、選択された値属性を取得し、それを数値入力からの値で乗算したい...私のセレクターが入力に対して機能していません。どうすればその乗数入力を選択できますか?

4

2 に答える 2

1

.find()現在一致しているセットの子孫である要素のみを検索します。隣接する要素(兄弟)が必要なため、.next()(この場合はおそらく最適です)または.siblings():を使用します。

for(var i = 0; i < dropdowns.length; i++) {
   one.push(dropdowns.eq(i).find('option:selected').attr('rel'));
   two.push(dropdowns.eq(i).val());
   mult.push(dropdowns.eq(i).val() * dropdowns.eq(i).next('input[name=multiplier]').val())
}
于 2012-08-06T06:25:55.170 に答える
0
mult.push(dropdowns.eq(i).val() * $('.multiplier').val())
于 2012-08-06T06:20:39.073 に答える