В чем разница prop() и attr?

В чем разница prop() и attr? Сколько ни искал, так и не смог найти точного ответа, просьба не грузить меня ссылками на иностранные форумы.
  • Вопрос задан
  • 2405 просмотров
Решения вопроса 1
lazalu68
@lazalu68
Suspended ))
Из документации:

(attr) Get the value of an attribute for the first element in the set of matched elements or set one or more attributes for every matched element.

(prop) Get the value of a property for the first element in the set of matched elements or set one or more properties for every matched element.

В адаптации Google Translate:

"(attr) Получите значение атрибута для первого элемента в наборе согласованных элементов или установите один или несколько атрибутов для каждого согласованного элемента."

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

Собственно вот и вся разница: первый метод читает/устанавливает значение атрибута элемента (Мержевич по теме), а второй - свойство объекта представляющего элемент. Если вкратце, то разница в том, что они из разной среды: атрибут это термин HTML - вы устанавливаете его в разметке и значение атрибута как-то обрабатывается, влияя на какие-то свойства элемента. А свойства это значения относящиеся непосредственно к DOM объекту элемента.

Например, class, один из самых привычных атрибутов для тега, в элементе представлен свойством className. Если у тега нет атрибута class, то у самого элемента есть свойство className, которое содержит пустую строку. Ну и соотвественно задать класс элементу можно либо изменив атрибут class с помощью attr, либо изменив свойство className с помощью prop.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
abyrkov
@abyrkov
JavaScripter
Разница такая же, как между свойством HTMLElement и атрибутом тэга, которого он представляет.
Проще говоря, prop читает свойство объекта, представляющего тэг, а attr именно атрибут тэга. Разницы, для стандартных свойств особой нет(value для input, например, есть и там, и там). А вот для нестандартных, prop не будет работать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы