Правильный способ использования jQuery index ();?Его всегда возвращается -1 - PullRequest
0 голосов
/ 18 сентября 2010

Не уверен, почему это происходит.Но каждый раз, когда я делаю (elem).index();, всегда возвращается -1.Это почему?

Как найти индекс объекта?

1 Ответ

2 голосов
/ 18 сентября 2010

Из документации jQuery.index() , среди множества примеров:

Возвращаемые значения

Если в метод .index() не передается аргумент, возвращаемое значение является целым числом, указывающим позицию первого элемента в объекте jQuery относительно его родственных элементов.

Если .index() вызывается для коллекции элементов и передается элемент DOM или объект jQuery, .index() возвращает целое число, указывающее позицию переданного элемента относительно исходной коллекции.

Если в качестве аргумента передается строка селектора, .index() возвращает целое число, указывающее позицию исходного элемента относительно элементов, совпадающих с селектором. Если элемент не найден, .index() вернет -1.

Обратите внимание на последнее предложение. Видимо elem просто не найден. Проверьте ваш селектор и / или элемент.


Обновление в соответствии с комментариями, вы, вероятно, звоните ему не в тот момент. Вот SSCCE, скопируйте и запустите его.

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>SO question 3740385</title>
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script>
            alert('Before DOM ready: ' + $(".nav ul li:first").index()); // Can return -1.

            $(document).ready(function() {
                alert('After DOM ready: ' + $(".nav ul li:first").index()); // Must return 0.
            });
        </script>
    </head>
    <body>
        <div class="nav">
            <ul>
                <li>item</li>
                <li>item</li>
                <li>item</li>
            </ul>
        </div>
    </body>
</html>

Смотри также:

...