2013-04-08 70 views
0

如果我有一些例如HTML这样我什么时候需要使用的各个jQuery中

<ul> 
    <li><a href="#">one</li> 
    <li><a href="#">two</li> 
    <li><a href="#">three</li> 
</ul 

,我想使用jQuery影响锚标记在每个那些li项目。在什么情况下,我需要使用each循环悫他们在何种情况下会在jQuery将自动适用于所有的li

例如,如果我这样做

jQuery('ul li a').css('color', 'red'); 

这将使每一个标记为红色,但无论使用哪种方法,都会出现这种情况,还有其他场景(不同的HTML或选择器),我需要使用each

+0

通常,如果你想读取集合中每个元素的状态(一种或另一种),你必须迭代它们。例如。 '.attr'只返回第一个选定元素的值。 – 2013-04-08 18:35:03

回答

1

jQuery('ul li a').css('color', 'red')是一个例子,其中的颜色会red。但是,您可以使用$.each来表示在应用颜色red之前,您必须先进行一些处理。例如:

$('ul li a').each(function(){ 
    if($(this).parent().hasAttr('error')){ 
     $(this).css('color', 'red'); 
    } 
}); 

你不能这样做在第一种情况的检查,但可以使用.each

+0

是的,谢谢......但是在jqery中没有一些场景,只有在dom中的第一个实例匹配,除非你使用每个...我有完全错误的。 – byronyasgur 2013-04-08 18:36:19

+0

仅当您使用ID时才会发生,或者这是唯一的匹配项。你是否指出你提到的情况? – karthikr 2013-04-08 18:37:32

+1

我以为我可以但实际上似乎我对此有一些误解......现在我看到了......如果我需要运行一个像你所示的功能,我只需要使用它们。 – byronyasgur 2013-04-08 18:41:16

1

如果你想做更复杂的事情,你可以运行一个函数。

例如,如果你想要做的警报每个元素:

​​
0

每当你想整个你可以使用each子元素进行迭代。无论它们是列表,div,跨度还是段落集。

每当你想要写一些逻辑在包装每一个孩子,你可以使用each

例子:

$('#oneDiv div').each(function(){ 
    if(div.text() === null) 
     //do Something 
}); 
1

的绝大多数时间,each是多余的或暗示的保证。如果您需要某个特定元素的唯一内容(主要示例为id),请使用each

使用$('ul li a').attr('id')找到的id只会提供第一个id。这意味着你将不得不使用:

$('ul li a').each(function(){ 
    $(this).attr('id'); 
}); 
相关问题