用于数字输入的jQuery选择器

时间:2012-08-06 06:15:05

标签: jquery input jquery-selectors

我有这个下拉代码:

$('#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())
 }

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

2 个答案:

答案 0 :(得分: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())
}

答案 1 :(得分:0)

mult.push(dropdowns.eq(i).val() * $('.multiplier').val())