2012-09-13 90 views
0

我正在嘗試做一個循環來檢查所有的類選擇器的元素。如何按類名查找元素

HTML

<div class='label'>aaaa</div> 
<div class='label'>bbbb</div> 
<div class='label'>cccc</div> 
<div class='label'>dddd</div> 

var pre=$('.label') 

    pre.each(function(e){ 
     console.log(e); 
    }) 

但它好好嘗試顯示元素(AAAA,bbbb..etc)。

我該怎麼做?非常感謝

回答

3
var pre = $('.label'); 

pre.each(function(i, el){ 
    console.log(el); 
    // OR 
    console.log(this); // will give you the element 

    // suppose to get text 
    console.log($(el).text()); // or $(this).text() 
}); 

DEMO

.each()第一個參數是index和第二個參數是value(這裏你的目標元素)

瞭解更多關於.each()

+0

不應該是'console.log(el.text());'? – SexyBeast

+0

不,因爲你想要的元素本身不一定是其中的文字 –

+0

@Cupidvogel:是的。但在這種情況下,它將直接在控制檯中可讀:) –

1

爲了回答的緣故,jQuery中的.each方法傳遞兩個值(除上下文)時,它被稱爲:

.each(function(index,value){ 
}); 

所以我只提供e在你的每一個功能你只要求索引參數。你需要提供兩個參數來獲取實際的元素或值。

但是,迭代元素時,迭代函數的上下文也會傳遞該元素。所以:

$('.label').each(function(index,element){ 
    // element == this 
}); 

所以,如果你不想提供你可以參考this功能中的第二個參數。