$('#mainlist').last().hide().fadeIn(200);
为什么这会隐藏,然后淡入列表中的所有项目而不是最后一项?
编辑:HTML部分:
<div id="mainbox">
<ul id = "mainlist">
</ul>
</div>
我的js用li附加到ul,然后运行上面显示的第一个代码。
答案 0 :(得分:4)
这是因为$("#mainlist")
返回的列表中只有一个元素。您选择的是#mainlist
的最后一个ul
。
.last()
方法选择DOM元素列表中的最后一个元素,而不是所选元素的最后一个子元素。
来自jQuery docs:
给定一个表示一组DOM元素的jQuery对象, .last()方法从最后一个元素构造一个新的jQuery对象 那套。
您需要$('#mainlist li').last().hide().fadeIn(200);
之类的内容。
答案 1 :(得分:1)
这是因为您的#mainlist
元素在列表项之前有另一个子/包<ul>
(因此它隐藏了包裹<ul>
,因此所有元素)。也许尝试使用您的选择器更具体
$("#mainlist li").last().hide().fadeIn(200);
编辑顺便说一句,这假设您的<ul>
标有<li>
个标签。