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())
 }

对于 multi 选项,我想获取选择的 value 属性并将其与数字输入中的值相乘...我的选择器不适用于输入,我该如何选择该乘数输入?

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 回答