Ajout d'attribut dans jQuery

271

Comment puis-je ajouter un attribut dans des balises HTML spécifiques dans jQuery?

Par exemple, comme ce simple HTML:

<input id="someid" />

Ajouter ensuite un attribut désactivé = "vrai" comme ceci:

<input id="someid" disabled="true" />
Yuda Prawira
la source
doublon possible de Comment ajouter un attribut HTML avec jQuery
Chris Laplante

Réponses:

520

Vous pouvez ajouter des attributs en utilisant attrcomme ceci:

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

Cependant, pour les propriétés DOM comme checked, disabledet readonly, la bonne façon de le faire (à partir de JQuery 1.6) est d'utiliser prop.

$('#someid').prop('disabled', true);
Paul Rosania
la source
28
Pour moi, $('#someid').prop('disabled', true);ça ne marche pas, mais ça $('#someid').attr('disabled', true);marche bien.
Vukašin Manojlović
4
D'accord avec @ VukašinManojlović .. pour moi la même chose.
sstauross
3
Avant de décider si vous allez utiliser attrou prop, il est important de comprendre la différence entre les propriétés et les attributs. Sans comprendre la différence, vous risquez de rencontrer un comportement inattendu. Voir stackoverflow.com/a/6004028/3367343
Travis Hohl
l'hélice peut-elle être utilisée pour remplacer attr maintenant? ou est-il utilisé uniquement dans certains cas particuliers?
Chaudhry Waqas
41

meilleure solution: à partir de jQuery v1.6, vous pouvez utiliser prop () pour ajouter une propriété

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

pour le retirer, utilisez removeProp()

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

Reference

Notez également que la méthode .removeProp () ne doit pas être utilisée pour définir ces propriétés sur false. Une fois qu'une propriété native est supprimée, elle ne peut plus être ajoutée. Voir .removeProp () pour plus d'informations.

diEcho
la source
29

Vous pouvez le faire avec la .attrfonction de jQuery , qui définira les attributs. Leur suppression se fait via la .removeAttrfonction.

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

//.removeAttr()
$("element").removeAttr("id");
$("element").removeAttr("disabled");
mattsven
la source
1
Bonus pour inclure la fonction de suppression!
BoatCode
15
$('#someid').attr('disabled', 'true');
Jerad Rose
la source
7
$('#someid').attr('disabled', 'true');
mrzmyr
la source
2
$('.some_selector').attr('disabled', true);
morgar
la source
2

Ajouter un attribut en tant que:

$('#Selector_id').attr('disabled',true);
amar ghodke
la source
0

Cela pourrait être plus utile ...

$("element").prop("id", "modifiedId");
//for boolean
$("element").prop("disabled", true);
//also you can remove attribute
$('#someid').removeProp('disabled');
Rejwanul Reja
la source
Les attributs et les propriétés ne sont pas exactement les mêmes. Par exemple, "id" est un attribut, pas une propriété. Vous utilisez .attr()pour le définir ou le lire. Voir le paragraphe "Attributs vs Propriétés" sous .prop () et .attr () dans les documents jQuery. Voir également la réponse de Paul Rosania ci-dessus.
jkdev
0
$('#yourid').prop('disabled', true);
Nakendra Pun
la source
0

utilisez ce code <script> $('#someid').attr('disabled,'true'); </script>

Vildan Bina
la source
ce serait mieux si vous pouviez avoir une explication
mooga
Il suffit d'inclure le lien jQuery après avoir écrit le code <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> Texte à l'intérieur de $ symbol sélectionnez tous les éléments avec id = someid, l'attribut désactivé de cet id passe à true
Vildan Bina