gpt4 book ai didi

javascript - jQuery .index() 的奇怪之处

转载 作者:行者123 更新时间:2023-11-28 20:44:19 25 4
gpt4 key购买 nike

我绝不是 jQuery(或 JavaScript)专家,所以如果我误解或忽略了某些内容,请原谅我。我有以下 HTML:

<html>
<body>
<div class="ted">Ted</div>
<div class="ted">Ted</div>
<div class="tim">Tim</div>
<div class="ted">Ted</div>
<div class="tim">Tim</div>
</body>
</html>

以及以下 JS:

$('.ted').click(function() {
alert($(this).index());
});

当我单击带有 '.ted' 类的 div 时,警报应显示该 div 的索引。

单击第一个 div 会发出警报“0”(预期),第二个 div 会发出警报“1”(预期)。但是,单击最后一个 '.ted' div (列表中的第四个)会警告“3” - 为什么这不给出索引 2? (因为 JS 数组是从 0 开始的)这是第三 '.ted' div

就好像 $('.ted') 实际上返回了列表中的所有 div?

示例如下:http://jsfiddle.net/nha2f/6/

最佳答案

.index() method docs明确这种行为。这是相关部分(已添加重点):

If no argument is passed to the .index() method, the return value is an integer indicating the position of the first element within the jQuery object relative to its sibling elements.

由于与选择器匹配的第三个元素实际上是其父元素的第四个子元素,因此它的索引为 3。

继续阅读文档以找到问题的解决方案:

If a selector string is passed as an argument, .index() returns an integer indicating the position of the original element relative to the elements matched by the selector.

因此,您可以将相同的选择器传递给.index(),它将返回元素相对于匹配集的索引:

alert($(this).index(".ted"));

关于javascript - jQuery .index() 的奇怪之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13760543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com