如果有人给我建议使用每个元素收集匹配的元素吗?
这是我试过的:
<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.
我如何收集匹配元素?
答案 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());
});