如何在Jquery中通过索引获取子元素?


72
<div class="second">
    <div class="selector" id="selFirst"></div>
    <div class="selector" id="selSecond"></div>
    <div></div>
</div>

如何使用元素索引而不是ID获取#selFirst?

这个:

var $selFirst = $(".second:nth-child(1)");
console.log($selFirst);

正在返回:

jQuery(div.second)

Answers:


193

如果您知道您感兴趣的子元素是第一个:

 $('.second').children().first();

或按索引查找:

 var index = 0
 $('.second').children().eq(index);

5
注意:eq()是0索引的,而index()是1索引的。
蚜虫

2
这个问题更笼统。如何按索引选择。这与如何选择第一个孩子无关。
亚历山大·沃尔科夫

@AlexanderVolkov注意第二个示例,该示例使用索引
Rich O'Kelly

17

有以下选择第一个孩子的方法

1)$('。second div:first-child')
2)$('。second *:first-child')
3)$('div:first-child','.second')
4)$('*:first-child','.second')
5)$('。second div:nth-​​child(1)')
6)$('。second')。children()。first()
7)$('。second')。children()。eq(0)

您提供的选择越多,获得的投票就越多!
Sarsaparilla

2
这个问题更笼统。如何按索引选择。这与如何选择第一个孩子无关。
亚历山大·沃尔科夫



1

第n个孩子不会返回兄弟姐妹而不是孩子吗?

var $selFirst = $(".second:nth-child(1)");

将返回带有“ .second”类的第一个元素。

var $selFirst = $(".selector:nth-child(1)");

应该给你类'.selector'的第一个兄弟姐妹


-7

var node = document.getElementsByClassName("second")[0].firstElementChild

免责声明:在浏览器的合规性getElementsByClassNamefirstElementChild发抖。DOM垫片可以解决这些问题。


请记住,如果OP正在寻找第一个DIV,则如果.second和#selFirst之间存在任何HTML元素,则该操作将无效。
mbx-mbx 2012年

他在哪里说“第一个DIV”。他在哪里说“ .second和#selFirst之间会有元素”
Raynos 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.