разница между prop() и attr () в jQuery и когда использовать attr () и prop () [дубликат]



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



Я видел в некоторых местах .attr () используется в jQuery.In кое - где .опора() используется.Но я искал
в SO и google я очень запутался .Пожалуйста скажите мне точную разницу между
эти два и когда их использовать.



I вы видели следующие ссылки
jQuery attr против prop, есть список реквизита?
jQuery attr vs prop?



но я не получил ответа.Пожалуйста, помогите мне.Спасибо заранее.



прежде чем дать downvote пожалуйста, объясните причину, то я исправлю в моем следующем посте.

599   3  

3 ответов:

С docs

разница между атрибутами и свойствами может быть важна в определенных ситуациях. Перед jQuery 1.6, the .метод attr () иногда учитывает значения свойств при извлечении некоторых атрибутов, что может привести к несогласованному поведению. По состоянию на jQuery 1.6, the .метод prop () предоставляет способ явного извлечения значений свойств, в то время как .attr () извлекает атрибуты.

пример

например, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked и defaultSelected должны быть получены и установлены с помощью .опора() метод. До jQuery 1.6 эти свойства можно было получить с помощью .метод attr (), но это не входило в сферу действия attr. Они не имеют соответствующих атрибутов и всего свойства.

обновление после комментария

вы можете установить атрибут для элемента HTML. Вы определяете это при написании исходного кода, как только браузер проанализирует ваш код, будет создан соответствующий узел DOM, который является объектом, имеющим свойства.

простой пример может быть..

<input type="test" value="test" id="test" />

здесь тип, значение, id атрибуты.После того, как браузер отображает его, вы получите другие свойства, такие как align, alt, autofocus, baseURI, checked и так далее.

ссылке Если вы хотите прочитать больше об этом

.attr() изменяет атрибуты для этого тега HTML.

.prop() изменяет свойства для этого HTML-тега в соответствии с деревом DOM.

как показывает пример в этой ссылке. Поле ввода может иметь атрибут "значение". Это будет равно значению по умолчанию, которое вы ввели. Если пользователь изменяет значение в поле ввода, свойство "значение" изменяется в дереве DOM, но исходный атрибут остается.

так что в основном, если вы хотите установить значение по умолчанию для атрибута тега HTML используйте

JQuery-это изменяющаяся библиотека, и иногда они делают регулярные улучшения. .attr () используется для получения атрибутов из HTML-тегов, и при этом он отлично работает .prop () был добавлен позже, чтобы быть более семантическим, и он лучше работает с атрибутами без значения, такими как "проверено" и "выбрано".

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

Comments

    Ничего не найдено.