繁体   English   中英

jQuery从没有循环的数组中多个元素的类属性中获取值

[英]jQuery Get value from class attribute of multiple elements in array without loop

我有多个带有单个类的 Select 下拉元素.select

<select class='select' name='select1' id='select1'>
  <option value='1'>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
</select>

<select class='select' name='select2' id='select2'>
  <option value='4'>4</option>
  <option value='5'>5</option>
  <option value='6'>6</option>
</select>

<select class='select' name='select3' id='select3'>
  <option value='7'>7</option>
  <option value='8'>8</option>
  <option value='9'>9</option>
</select>

我知道它可以在这样的循环的帮助下实现

var arr = [];
$('.select').each(function () {
   arr.push($(this).val());
});

但是我已经在代码中有这么多循环,我想知道是否有任何方法可以在没有循环的情况下实现

小提琴: http : //jsfiddle.net/89cJC/

不,没有其他方法可以从多个元素中获取值,您必须遍历元素才能从每个元素中获取值。

还有其他方法可以编写基本相同的代码

var arr = $.map($('.select'), function (el) { return el.value; });

或者没有 jQuery

var elems = document.querySelectorAll('.select'),
    arr   = [];

for (var i=elems.length; i--;) arr.push(elems[i].value);

但它们都在迭代,没有其他方法可以做到这一点。

你可以使用jquery的jquery $.map函数来处理元素数组

例如

var arr = [];
arr = $.map($(".select"),function(select){
        return $(select).val();
});

console.log(arr);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM