jQuery选择器,用于查找每组元素中的第一个子元素

Jok*_*ker 3 jquery selector

我有这个HTML:

<div id="tags">
    <ul>
        <li><input type="text" /><a href="#">First Link</a> <a href="#">Second Link</a></li>
        <li><input type="text" /><a href="#">First Link</a> <a href="#">Second Link</a></li>
        <li><input type="text" /><a href="#">First Link</a> <a href="#">Second Link</a></li>
        <li><input type="text" /><a href="#">First Link</a> <a href="#">Second Link</a></li>
        <li><input type="text" /><a href="#">First Link</a> <a href="#">Second Link</a></li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我将使用什么选择器来捕获每个li元素的第一个锚点,以及每个li的第二个锚点如何不添加任何额外的id或类?

好吧,我试过这个:

$('#tags a:last-child')
Run Code Online (Sandbox Code Playgroud)

而且我能够得到每个李的第二个锚点,但我不明白为什么会这样.一个元素不需要在锚点内部来选择一些东西,但它能够选择每个li的第二个锚点.后来我不在乎它是如何工作的,只要它有效,所以我想我会做同样的事情来得到第一个元素:

$('#tags a:first-child')
Run Code Online (Sandbox Code Playgroud)

然而,这并不适用于获得每个李的第一个锚点.有任何想法吗?

编辑: 所以我想我做得对,但它没有工作,因为我有一个输入文本框,似乎使它无法正常工作.一旦输入框存在,为什么它不再起作用?

hun*_*ter 6

我将使用什么选择器来捕获每个li元素的第一个锚点

$("#tags li a:first-child") 要么 $("#tags li a:nth-child(0)")

如果没有添加任何额外的ID或类,每个li的第二个锚如何?

$("#tags li a:last-child") 要么 $("#tags li a:nth-child(1)")

:*-child选择工作的原因是因为它是对a标签的过滤,而不是a标签的子项.

a :first-child=>过滤a标签的子项

a:first-child=>对a所选标签进行过滤


这里的工作示例:http://jsfiddle.net/7vupb/