2012-12-05 76 views
0

如果有人給我一個建議,收集使用每個匹配元素?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

我怎麼能收集匹配的元素?

+0

你可以定義_matching elements_? – undefined

+0

'var x = $(「ul li.options」)'也許? – pimvdb

+0

你是什麼意思,你想要點李? $(」選項)。長度是多少? – CR41G14

回答

1

這是因爲你有回報只在每個函數內迭代,而不在外部匿名函數中。 它應該是這樣的:

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

或'$(「ul li.options」)。toArray()'。 – pimvdb

0

jQuery選擇將自身返回匹配的元素集合

$('ul > li.options') 

感謝

+0

我同意。但事情是我正在糾正舊式的js文件。 – 3gwebtrain

0

我可能會做這樣的,如果你的努力得到選項的值。如果你想對它們進行比較,你可以簡單地把它們取決於你的最終目標是什麼比較陣列(在沒有完全明白你的意思在這種情況下匹配)

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

1.''console'應該是'console' 2.對於'li'元素應該使用'text/html','val'應該用於表單元素,3。-1。 – undefined

+0

Thx發表評論,現在更新。有點sl me我! – Marthin