jQuery .last()。hide()。fadeIn()淡入列表中的所有项目

时间:2016-08-06 23:43:55

标签: javascript jquery web

$('#mainlist').last().hide().fadeIn(200);

为什么这会隐藏,然后淡入列表中的所有项目而不是最后一项?

编辑:HTML部分:

<div id="mainbox">
    <ul id = "mainlist">

    </ul>
</div>

我的js用li附加到ul,然后运行上面显示的第一个代码。

2 个答案:

答案 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>个标签。