0

例如,如果我有一些这样的 HTML

<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');

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

4

5 回答 5

2

jQuery('ul li a').css('color', 'red')是颜色为 的示例red。但是,您可以使用$.eachfor 假设您必须在应用颜色之前进行一些处理red。例子:

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

在第一种情况下您无法进行检查,但您可以使用.each

于 2013-04-08T18:33:55.703 回答
1

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

例如,如果您想对每个元素发出警报:

$('ul li a').each(function(index, value) { alert(index); });
于 2013-04-08T18:32:32.557 回答
1

大多数时候,each是多余的或暗示的。如果each您需要该特定元素独有的东西(主要示例是id),请使用。

使用$('ul li a').attr('id')查找 theid只会提供第一个id. 这意味着您必须使用:

$('ul li a').each(function(){
   $(this).attr('id');
});
于 2013-04-08T18:46:10.217 回答
0

每当您想遍历子元素时,您都可以使用each. 无论它们是列表、div 集、跨度还是段落。

每当您想为包装器中的每个孩子编写一些逻辑时,您都可以使用each

例子 :

$('#oneDiv div').each(function(){
     if(div.text() === null)
        //do Something
 });
于 2013-04-08T18:36:34.243 回答
0

正如您在 jQuery API 文档中看到的那样:https ://api.jquery.com/each/#each-function ,对于您的示例,不需要如他们的示例所示。

// The .each() method is unnecessary here:
$( "li" ).each(function() {
  $( this ).addClass( "foo" );
});

// Instead, you should rely on implicit iteration:
$( "li" ).addClass( "bar" );
于 2020-03-12T11:37:36.117 回答