0

我确信这很简单,但是我在获取选定元素列表中的项目索引时遇到了麻烦。

<!DOCTYPE HTML>
<html lang="en-GB">
    <head>
        <meta charset="utf-8" />
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
        <script>
            $(document).ready(function(){
                $items = $('div.inner');
                console.log($items);
                $items.each(function(){
                    console.log($(this).index())
                })
            });
        </script>
    </head>

    <body>
        <div class="inner" id="div1"></div>
        <div class="outer"></div>

        <div class="inner" id="div2"></div>
        <div class="outer"></div>

        <div class="inner" id="div3"></div>
        <div class="outer"></div>
    </body>
</html>

正如您从第一个控制台输出中看到的那样,我创建了一个名为 $items 的变量,其中只有三个对象。我需要获取此集合中每个对象的索引。即,索引 0、1 和 2。但是,在遍历集合时,会返回索引 0、2 和 4。如果我添加更多具有外部类的 div,则索引会再次更改。

这里发生了什么,以及如何获取 $items 集合中的索引

4

2 回答 2

1

.index ()方法返回元素相对于其兄弟元素的索引,但您要查找的是列表中元素的索引。

.each() ,将集合中的当前元素索引作为第一个参数,您可以使用它

$(document).ready(function () {
    $items = $('div.inner');
    console.log($items);
    $items.each(function (idx) {
        console.log(idx)
    })
});

演示:小提琴

于 2013-09-20T08:34:55.730 回答
0

我很确定

$(function () {
    $items = $('div.inner');
    $items.each(function (index) {
        console.log(index)
    })
});
于 2013-09-20T08:56:17.860 回答