HTML-атрибуты vs свойства [дубликат]


этот вопрос уже есть ответ здесь:

  • .проп() против .достопри() 18 ответов

- Это id атрибут или свойство HTML?

Я должен делать $('#selector').attr('id'); или $('#selector').prop('id');

Я прочитал много статей и до сих пор в замешательстве.

может кто-нибудь, пожалуйста, объясните мне, в чем разница между атрибуты и свойства в HTML/JS находятся на очень простом языке?

2 51

2 ответа:

атрибуты определяются HTML. Свойства определяются DOM.

некоторые атрибуты HTML имеют отображение 1:1 на свойства. id является одним из таких примеров.

некоторые не (например,value атрибут определяет начальное значение входного сигнала, но value свойство определяет настоящее значение).

да, attr предназначен для атрибутов html, поскольку они строго определены. опора для свойств.

Так, например, скажем, у вас есть узел elem с классом "что-то" (raw элемент не jQuery объект). Элем.className-это свойство,но где находится атрибут. Изменение атрибута класса также автоматически изменяет свойство и наоборот.

В настоящее время attr перемешан и запутан, потому что он попытался выполнить работу обеих функций и там много ошибок, из-за этого. Введение jQuery.сноска.prop решит несколько блокировщиков, отдельный код, как он должен был быть отделен от начала, и даст разработчикам более быстрые функции, чтобы делать то, что они ожидают от них.

позвольте мне составить процент за секунду и сказать, что из моего опыта в поддержке IRC и чтении чужого кода 95% случаев использования для attr не придется переключаться на prop.

посмотреть Еще