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

271

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

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

<input id="someid" />

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

<input id="someid" disabled="true" />
Юда Правира
источник
Возможный дубликат Как добавить атрибут HTML с помощью jQuery
Крис Лапланте

Ответы:

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 () для получения дополнительной информации.

diEcho
источник
29

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

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

//.removeAttr()
$("element").removeAttr("id");
$("element").removeAttr("disabled");
mattsven
источник
1
Бонус за включение функции удаления!
BoatCode
15
$('#someid').attr('disabled', 'true');
Джерад Роуз
источник
2

Добавить атрибут как:

$('#Selector_id').attr('disabled',true);
амар ходке
источник
0

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

$("element").prop("id", "modifiedId");
//for boolean
$("element").prop("disabled", true);
//also you can remove attribute
$('#someid').removeProp('disabled');
Rejwanul Reja
источник
Атрибуты и свойства не совсем одинаковы. Например, «id» - это атрибут, а не свойство. Вы используете, .attr()чтобы установить или прочитать его. См. Раздел «Атрибуты и свойства» в .prop () и .attr () в документации по jQuery. Также см . Ответ Павла Розания выше.
jkdev
0
$('#yourid').prop('disabled', true);
Накендра Пун
источник
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