jquery如何收集匹配元素?

时间:2012-12-05 11:26:45

标签: jquery

如果有人给我建议使用每个元素收集匹配的元素吗?

这是我试过的:

<ul>
<li class='options'></li>
<li></li>
<li class='options'></li>
<li></li>
<li class='options'></li>
<li class='options'></li>
</ul>​

var x = $();

x = (function(){
$.each($('li.options','ul'), function(i,e){
    return e;
})
    })()

    console.log(x)//i am getting undefined.

here is the jsfiddle

我如何收集匹配元素?

3 个答案:

答案 0 :(得分:1)

之所以发生这种情况,是因为你只在迭代中返回每个函数,而不是在外部匿名函数中。 它应该是这样的:

var x = (function(){
    var elements = [];
    $.each($('li.options','ul'), function(i,e){
        elements.push(e);
    })
    return elements;
})();
console.log(x);

答案 1 :(得分:0)

Jquery选择器本身会将匹配元素作为集合

返回
 $('ul > li.options')

由于

答案 2 :(得分:0)

如果您尝试获取选项值,我可能会这样做。如果你想比较它们,你可以简单地将它们放在比较数组中,这取决于你的最终目标是什么(在这种情况下不完全确定你的意思是匹配)

$('.options').each(function() {
  console.log($(this).html());
});