Почему Jquery не позволяет мне сделать это - PullRequest
0 голосов
/ 09 октября 2009
document.getElementById("main").src = '02.jpg';

работает

но

$('#main').src = '02.jpg';

не

Ответы [ 4 ]

9 голосов
/ 09 октября 2009
$("#main").attr("src", "02.jpg");
7 голосов
/ 09 октября 2009

$('#main') возвращает объект jQuery, а не HTMLElement, поэтому свойство src не определено для объекта jQuery. Вы можете найти эту статью полезной.

Майк показал один способ установки атрибута src (способ, который он показал, вероятно, можно считать наиболее jQuery-подобным способом сделать это). Пара других способов

$("#main")[0].src = '02.jpg';

или

$("#main").get(0).src = '02.jpg';
1 голос
/ 09 октября 2009

$ ('# main'). Src = '02 .jpg ';

Оболочка jQuery, которую вы получаете от $ (...), не воспроизводит все свойства и методы объекта (ей) DOM, который она переносит. Вы должны придерживаться специфичных для jQuery методов в объекте-оболочке: в этом случае attr, как описано Майком.

Библиотека "prototype", в отличие от jQuery, дополняет существующие объекты DOM, а не упаковывает их. Таким образом, вы получаете старые методы и свойства, такие как .src в дополнение к новым. У обоих подходов есть свои преимущества и недостатки.

0 голосов
/ 09 октября 2009

$("#main") - набор совпадений из поиска. document.getElementById("main") - это отдельный элемент DOM, который имеет свойство src. Используйте метод attr(x,y), когда вы хотите установить какой-либо атрибут для всех элементов в коллекции, который возвращается $(x), даже если это только один элемент, как в getElementById(x).

Это похоже на разницу между int и int[] - очень разные звери!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...