Как получить доступ к дочернему элементу из детей ()?

Я хотел бы получить # непосредственных детей, которых имеет элемент, и затем получите класс ребенка в конкретном индексе. Что-то как:

var index = 25;
var children = $("#myListElement").children();
if (index < children.length) {
    if (children[index].hasClass("testClass")) {
        alert("hi!");
    }
}

Я думаю, что синтаксис для .children () в порядке, но как я вытаскиваю индексируемый элемент из них в стиле jQuery?

Спасибо

7
задан user291701 14 June 2010 в 03:13
поделиться

3 ответа

Метод children возвращает объект , подобный массиву , который содержит простые узлы DOM. Вам нужно обернуть содержащийся элемент с помощью jQuery или получить его с помощью метода eq (index) , чтобы иметь возможность использовать для него методы jQuery, такие как hasClass .

if ($(children[index]).hasClass("testClass"))

jQuery не оборачивает их по умолчанию по очевидным причинам производительности.

Если вы используете Firebug или инструменты разработчика Chrome / Webkit, вы получите исключение при попытке вызвать неопределенный метод для объекта. См. , пример . Убедитесь, что вы смотрите вывод на консоль:)

TypeError: Object #<an HTMLLIElement> has no method 'hasClass'
11
ответ дан 6 December 2019 в 19:33
поделиться

Прошу прощения, но я нашел ваш вопрос несколько запутанным. Это то, что вы хотите?

var parent = $("#myitem"),
    count  = parent.children().length,
    index  = parent.children(".theClass").index();

Это получает дочерний индекс элемента с определенным классом, цикл не требуется.

Однако, если вам нужен класс (но уже есть индекс), сделайте следующее:

var parent = $("#myitem"),
    count  = parent.children().length,
    classN = parent.children()[3].className;
2
ответ дан 6 December 2019 в 19:33
поделиться

используйте eq () :

if (children.eq(index).hasClass("testClass"))
0
ответ дан 6 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: