jQuery .html() возвращает DOM объект

Рейтинг: 1Ответов: 2Опубликовано: 27.04.2015

Строчка:

jQuery(function(){ jQuery('.call_phone_1').html('sample');  });

должна подменить хтмл элемента с классом call_phone_1 на sample, однако вместо этого я получаю в консоли [#document]. Почему такое происходит? Если было бы просто:

jQuery('.call_phone_1').html('sample'); 

то оно бы сработало, но так как этот скрипт приходит со стороннего ресурса, я не могу его изменить. Как заставить код работать?(на данный момент он не подменяет) Версия : jquery-1.9.1.min.js CMS PHPshop.

Ответы

▲ 1

Такая ошибка возникает если по селектору ничего не найдено, возможно вы вызываете функцию раньше, чем элемент появится в DOM.

▲ 1

Он и должен возвращать jQuery-коллекцию. jQuery поддерживает так называемый Fluent Interface - все вызовы методов, которые не должны возвращать информацию, возвращают тот объект, на котором были вызваны. Это позволяет делать цепочки вызовов:

$('div:last').html('whateva').css('color', 'red').width(200);

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