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


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

为什么这会隐藏,然后在列表中的所有项目中消失,而不仅仅是最后一个?

编辑:HTML的部分:

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

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

这是因为$("#mainlist")返回的列表中只有一个元素。您正在选择最后一个#mainlist,即您的ul

.last()方法选择DOM元素列表中的最后一个元素,而不是所选元素的最后一个子元素。

来自jQuery文档:

给定一个表示一组DOM元素的jQuery对象.last((方法从中的最后一个元素构造一个新的jQuery对象那一套。

你想要$('#mainlist li').last().hide().fadeIn(200);之类的东西。

这是因为#mainlist元素在列表项之前有另一个子元素/包装<ul>(因此它隐藏了包装<ul>,从而隐藏了所有元素(。也许试着用你的选择器更具体

$("#mainlist li").last().hide().fadeIn(200);

EDIT顺便说一句,这假设您的<ul>已填充<li>标记。

最新更新