在jQuery中选择第N个兄弟姐妹?

11 html jquery css-selectors

我正在尝试设置我的jQuery选择器,但我不确定我需要如何编写它.

我有一个看起来像这样的无序列表:

<ul>
    <li>something</li>
    <li>something</li>
    <li>something</li>
    <li>something</li>
    <li class="last">something</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

现在我知道我是否想通过使用"ul li.last"或"ul.li:last"来选择我能做到的最后一个孩子,但是如果我想要从倒数第二,第三或第二?我现在会这样做吗?

Pao*_*ino 17

你用eq:

$('ul li').eq(X);
Run Code Online (Sandbox Code Playgroud)

其中X是您想要的元素的从0开始的索引.您还可以使用选择器表单:

$('ul li:eq(X)');
Run Code Online (Sandbox Code Playgroud)

您还可以使用nth-child以下方法获得类似的结果:

$('ul li:nth-child(X)');
Run Code Online (Sandbox Code Playgroud)

该文件有这样说的区别nth-childeq:

虽然:eq(index)只匹配一个元素,但它匹配多个:每个父项都有一个索引.具有偶数,奇数或等式的每个父项的倍数.指定的索引是一个索引,与以下相反:eq()从零开始.

因此,通过这样做,$('ul li').eq(19);您将得到查询的单个第20个匹配元素(因此,如果文档中有多个列表,这将不会让您"所有第19个孩子",而$('ul li:nth-child(20)');将获得每个第20个匹配的列表元素<ul>在文件中.

编辑:

要做一些像"倒数第二"这样的事情,理所当然的做法就像:

var $ul = $('#mylist > li');
var $el = $ul.eq($ul.length-2);
Run Code Online (Sandbox Code Playgroud)

但你应该检查一下,确保length-2不小于0.