Добавление атрибута в jQuery


271

Как добавить атрибут в определенные теги HTML в jQuery?

Например, вот такой простой HTML:

<input id="someid" />

Затем добавляем атрибут disabled = "true" следующим образом:

<input id="someid" disabled="true" />

Ответы:


520

Вы можете добавить атрибуты, используя attrтак:

$('#someid').attr('name', 'value');

Тем не менее, для свойств DOM, таких как checked, disabledи readonly, правильный способ сделать это (начиная с JQuery 1.6) - использовать prop.

$('#someid').prop('disabled', true);

28
Для меня $('#someid').prop('disabled', true);не работает, но $('#someid').attr('disabled', true);работает нормально.
Вукашин Манойлович

4
Согласитесь с @ VukašinManojlović .. для меня то же самое.
sstauross

3
Прежде чем вы решите, собираетесь ли вы использовать attrили propважно понять разницу между свойствами и атрибутами. Без понимания разницы вы можете столкнуться с неожиданным поведением. См. Stackoverflow.com/a/6004028/3367343
Трэвис Холь

можно ли использовать реквизит вместо attr? или он используется только в некоторых особых случаях?
Chaudhry

41

лучшее решение: из jQuery v1.6 вы можете использовать prop () для добавления свойства

$('#someid').prop('disabled', true);

чтобы удалить его, используйте removeProp()

$('#someid').removeProp('disabled');

Reference

Также обратите внимание, что метод .removeProp () не должен использоваться для установки этих свойств в false. После удаления нативного свойства его нельзя добавить снова. Смотрите .removeProp () для получения дополнительной информации.


29

Вы можете сделать это с помощью .attrфункции jQuery , которая будет устанавливать атрибуты. Удаление их осуществляется с помощью .removeAttrфункции.

//.attr()
$("element").attr("id", "newId");
$("element").attr("disabled", true);

//.removeAttr()
$("element").removeAttr("id");
$("element").removeAttr("disabled");

1
Бонус за включение функции удаления!
BoatCode





0

Это может быть более полезным ....

$("element").prop("id", "modifiedId");
//for boolean
$("element").prop("disabled", true);
//also you can remove attribute
$('#someid').removeProp('disabled');

Атрибуты и свойства не совсем одинаковы. Например, «id» - это атрибут, а не свойство. Вы используете, .attr()чтобы установить или прочитать его. См. Раздел «Атрибуты и свойства» в .prop () и .attr () в документации по jQuery. Также см . Ответ Павла Розания выше.
jkdev


0

используйте этот код <script> $('#someid').attr('disabled,'true'); </script>


было бы лучше, если бы у вас было какое-то объяснение
mooga

Просто включите ссылку jQuery после кода записи. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> Текст внутри символа $ выделите все элементы с id = someid, атрибут отключенного атрибута этого идентификатора изменится на true
Vildan Bina
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.