我正在关注Jquery的初学者视频教程并且刚刚完成了这段代码:(内部.ready())
$('ul li ').each(function(e){
$this().css{background' ,'red'}
$this().append(e);
});
现在e prints each li index
,有人可以解释一下如何为每个项目获取索引,因为它不是循环。
答案 0 :(得分:2)
嗯,.each()
函数 是一个循环。它几乎字面上写着“对于每个名为'ul li'的项目,做点什么。”
parantheses中的字母'e'是您的实际索引号。当您使用.each
循环时,该函数会收集正在查看的内容的数量并继续前进,直到不再有。
要简单地显示索引的编号,您可以说:
$('ul li').each(function(i){ //I like to use the letter 'i' which more literally stands for 'index'
console.log(i);
});
这将在您的控制台中显示为:
0
1
2
3
4
5
假设你有六个元素。
现在,您对$this
的使用毫无意义。当正确使用它时,它被写为$(this)
,这意味着“这个元素”,因为我们在一个遍历每个列表元素的函数中,它将采用它当前正在查看的列表元素,然后执行您想要的任何操作。
如果您希望所有列表元素的背景颜色为红色(就像您想要的那样),您可以写道:
$('ul li').each(function(i){
$(this).css({"background": "red"});
});
我不确定你要对.append
函数做什么。通过这样做,您实际上是为每个列表元素向列表元素添加一个列表元素!
你能解释一下你想要完成什么吗?
<强>更新强>
正如您的标题所示“按索引访问每个列表项”,如果您想访问特定列表项而不是所有列表项,则可以使用函数.eq()
。假设您有6个列表元素,并且您希望第四个元素具有红色背景。所有你必须这样做:
$('ul li').eq(3).css({"background":"red"});
请记住,索引编号从零开始,因此第四个编号为#3。 (当然,这在CSS中会更快更简单!)
答案 1 :(得分:1)
实际上,.each()是循环/迭代器。它将迭代匹配的每个元素。例如:所有ul li
s。
它将为每个匹配的代码运行代码,并且可以使用$(this)