2012-09-13 55 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功能中的第二个参数。