使用 jQuery 查找子项的索引
find index of child using jQuery?
如果我有一个像这样的html结构:
<div id="parent">
<div class="child first">
<div class="sub-child"></div>
</div>
<div class="child second">
<div class="sub-child"></div>
</div>
<div class="child third">
<div class="sub-child"></div>
</div>
</div>
我有一个通过($('#parent.child')).click()
定义的点击处理程序,然后我单击带有 second
类的div(简单地添加了first, second, third
类以使演示更清晰)有没有一种简单的方法可以得到数字 1,因为它是第二个孩子?(基于0的索引)?
类似$(this).index
看看jQuery API。您建议的方法index
,完全正确:
$('#parent .child').click(function() {
var index = $(this).index();
});
从文档中:
如果没有参数传递给 .index() 方法,则返回值为 一个整数,指示第一个元素在 jQuery 对象相对于其同级元素。
另请注意,我从您的示例中略微更改了选择器。我猜这只是你问题中的一个错字。 #parent.child
将查找 ID 为"parent"的元素和 "child" 类,但您实际上希望#parent .child
(注意空格)查找具有类"child"的元素,这些元素是 ID 为"parent"的元素的后代。
index()
方法可用于获取集合中元素的位置。在基本情况下,$(this).index()
应该起作用。
但是有了更具体的集合,你可以得到collection.index(item)
的位置。想象一下,在你的#parent
中添加一些简单的东西,在测量index()
时不应该被计算在内(span
,img
任何东西)。使用简单方法,代码可能会中断,但使用特定方法时,代码不会中断。
这样的东西应该适合你:
var $children = $('#parent .child').click(function () {
console.log($children.index(this));
});
jsFiddle 演示
相关文章:
- 在jQuery中获取表的行索引
- 按照选项卡索引的顺序循环一个jQuery选择
- 如何通过Jquery从具有相同名称但不同索引的输入中获取所有值
- 如何索引jquery中的每个元素
- 如何设置元素的z索引?JQuery、Javascript、CSS、HTML
- 已筛选jQuery集中元素的索引
- 如何使用Jscript | JQuery在textArea中获取插入的|删除的字符串的索引和长度
- 使用JQuery检查数组的索引中是否存在字符串
- Safari 5.1.7 flexslider/jquery工具冲突z索引错误
- 如何在不使用TableTool的情况下从jquery数据表中获取选定的行索引
- Javascript 异常 “参数名称: 索引” 使用 jquery
- 在 jquery 选项卡中查找 span 标记并返回该索引
- 如何在循环期间访问 jquery getJson 调用 ($.getJson) 中的索引变量
- jQuery:如何获取选择数组中元素的索引
- 如何在jquery中根据父级和内部父级动态更改输入元素的索引
- jQuery ajax请求,将索引数组作为关键字字符串
- 使用jquery通过索引定位子级
- jQuery按索引不一致的值筛选对象
- 如何获取具有类的元素的当前索引?(JQuery)
- 每个循环中的增量索引 jQuery/javascript.