如果我有一些像这样的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');
这将使每个标记变为红色,但无论我使用哪种方法都是如此,并且还有其他方案(不同的HTML或选择器),我需要使用each
。
答案 0 :(得分:2)
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
答案 1 :(得分:1)
如果你想做一些更复杂的事情,可以运行一个函数。
例如,如果您想对每个元素发出警报:
$('ul li a').each(function(index, value) { alert(index); });
答案 2 :(得分:1)
绝大多数情况下,each
是多余的或暗示的。如果您需要特定元素的独特内容(主要示例为each
),请使用id
。
使用$('ul li a').attr('id')
查找id
只会提供第一个id
。这意味着你必须使用:
$('ul li a').each(function(){
$(this).attr('id');
});
答案 3 :(得分:0)
每当您想要遍历子元素时,您都可以使用each
。无论它们是列表,还是div,span或段落。
每当你想为包装器中的每个孩子写一些逻辑时,你可以使用each
示例:
$('#oneDiv div').each(function(){
if(div.text() === null)
//do Something
});
答案 4 :(得分: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" );