例如,如果我有类似这样的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
。
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
在大多数情况下,each
是多余的或暗含的。如果您需要特定于该元素的独特内容(主要示例为each
),请使用id
。
使用$('ul li a').attr('id')
查找id
只会提供第一个id
。这意味着您必须使用:
$('ul li a').each(function(){
$(this).attr('id');
});
如果您想做更复杂的事情,可以运行一个函数。
例如,如果要在每个元素上发出警报:
$('ul li a').each(function(index, value) { alert(index); });
[无论何时要遍历所有子元素,都可以使用each
。无论它们是列表,div集合,跨度还是段落集。
[每当要为包装中的每个子代编写一些逻辑时,都可以使用each
示例:
$('#oneDiv div').each(function(){
if(div.text() === null)
//do Something
});
您可以在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" );