JavaScript не может получить firstChild

0

Я пытаюсь получить первый ребенок моего div "tick_list", чтобы вставить новый элемент, но он возвращает undefined.

$(function() {
   var tick_list = $('#tick_list');

    socket.on('tick', function(data){
        console.log(tick_list.firstElementChild);
    });
});

Изображение 174551

Теги:

5 ответов

3
Лучший ответ

tick_list - это объект jQuery, который не имеет свойства firstElementChild.

Вы можете использовать tick_list.children().eq(0) чтобы получить первый ребенок (все еще объект jQuery).

Есть много способов получить первого ребенка, и вот для них тест jsperf:

  • 0
    .eq() возвращает объект jQuery ... .get() ?
  • 0
    get() возвращает собственный HTML-элемент DOM (ясно объяснено в документации ...)
1
$(function() {
   var tick_list = $('#tick_list');

    socket.on('tick', function(data){
        console.log(tick_list.eq(0));
    });
});
  • 2
    .eq(0) возвращает первый элемент в коллекции tick_list ... не его дети
  • 0
    не работает .... он возвращает объект tick_list
Показать ещё 1 комментарий
1
$(function() {
   var tick_list = $('#tick_list');

    socket.on('tick', function(data){
        console.log(tick_list.children(':first'));
    });
});
1

Вы можете использовать методы children() и first() jquery

$(function() {
   var tick_list = $('#tick_list');

    socket.on('tick', function(data){
        console.log(tick_list.children().first());
    });
});

https://api.jquery.com/children/

https://api.jquery.com/first/

0

tick_list - это объект jQuery, поэтому вы не можете напрямую обращаться к свойствам dom с помощью операторов-членов.

Вы используете метод.prop()

tick_list.prop('firstElementChild')

или доступ к основному элементу dom с помощью индекса.get()

tick_list[0].firstElementChild

Ещё вопросы

Сообщество Overcoder
Наверх
Меню