Я пытаюсь получить первый ребенок моего div "tick_list", чтобы вставить новый элемент, но он возвращает undefined.
$(function() {
var tick_list = $('#tick_list');
socket.on('tick', function(data){
console.log(tick_list.firstElementChild);
});
});
tick_list
- это объект jQuery, который не имеет свойства firstElementChild
.
Вы можете использовать tick_list.children().eq(0)
чтобы получить первый ребенок (все еще объект jQuery).
Есть много способов получить первого ребенка, и вот для них тест jsperf:
$(function() {
var tick_list = $('#tick_list');
socket.on('tick', function(data){
console.log(tick_list.eq(0));
});
});
.eq(0)
возвращает первый элемент в коллекции tick_list ... не его дети
$(function() {
var tick_list = $('#tick_list');
socket.on('tick', function(data){
console.log(tick_list.children(':first'));
});
});
Вы можете использовать методы children() и first() jquery
$(function() {
var tick_list = $('#tick_list');
socket.on('tick', function(data){
console.log(tick_list.children().first());
});
});
tick_list
- это объект jQuery, поэтому вы не можете напрямую обращаться к свойствам dom с помощью операторов-членов.
Вы используете метод.prop()
tick_list.prop('firstElementChild')
или доступ к основному элементу dom с помощью индекса.get()
tick_list[0].firstElementChild
.eq()
возвращает объект jQuery ....get()
?get()
возвращает собственный HTML-элемент DOM (ясно объяснено в документации ...)