2014-07-14 342 views
0

我正在潛入jQuery一段時間,並且everthing似乎很好 - 但是我總是困惑於: 有時候,jQuery選擇會返回一個純DOM元素數組,有時我會得到一個這個數組式的jQuery對象。有時元素,有時會返回jQuery對象?

例如與ID選擇:

var note = $('#note') 
console.log(note.val()); 

工作得很好 - 這是一個jQuery包裹的元素,我可以與所有的jQuery方法工作。

但不必通過類像

var notes = $('.notes'); 
_.each(notes, function (element) { 
    element = $(element); 
    console.log(element.val()); 
}); 

似乎是我很醜陋來選擇它 - 是不是有一個簡單的方法來恢復我總是一個jQuery包裹設置?

我想它涉及到性能方面的考慮,但我想通過非ID選擇器來選擇並使用包裝的jQuery對象進行選擇。

感謝

+0

首先把它的類型,然後決定如何使用它:http://api.jquery.com/jquery.type/ – StaticVoid

+0

jQuery提供'each'方法遍歷一個jQuery對象並返回它。任何你不能使用它的原因?編輯:除非你在你的下劃線'each'裏面談論。在這種情況下,都返回元素,你需要重新包裝它。 – ajm

回答

1

我認爲你缺少的是,當你創建一個集合與$(selector)它創建了一個包含由選擇所代表的DOM元素的數組一個jQuery對象。

如果集合的每個元素都包含在jQuery對象中,那麼該對象將會很大。

總之,也沒有神奇的方式做你所要求的

0

你得到JQuery的包裹設置是數組它內部的所有元素。在數組上運行$.each逐個遍歷這些元素。

換句話說

$('.notes')[0]將讓你在選擇第一個元素。

在這種特定的情況下,如果你正在尋找價值,你可以簡單地做console.log(element.value);

+0

.val()僅用作示例 - 更復雜的jQuery函數通常需要調用:) –

相關問題