329 votes

Ajout d'un attribut dans jQuery

Comment ajouter un attribut dans des balises HTML spécifiques en jQuery ?

Par exemple, comme ce simple HTML :

<input id="someid" />

Puis ajouter un attribut disabled="true" comme ceci :

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

0 votes

615voto

Paul Rosania Points 3447

Vous pouvez ajouter des attributs en utilisant attr comme ça :

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

Cependant, pour les propriétés DOM comme checked , disabled y readonly La façon correcte de procéder (à partir de JQuery 1.6) est d'utiliser la méthode suivante prop .

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

35 votes

Pour moi $('#someid').prop('disabled', true); ne fonctionne pas, mais $('#someid').attr('disabled', true); fonctionne bien.

4 votes

D'accord avec @VukašinManojlovic pour moi c'est pareil.

4 votes

Avant de décider si vous allez utiliser attr o prop il est important de comprendre la différence entre les propriétés et les attributs. Si vous ne comprenez pas cette différence, vous risquez de vous heurter à un comportement inattendu. Voir stackoverflow.com/a/6004028/3367343

54voto

diEcho Points 22385

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

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

pour le supprimer, utilisez removeProp()

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

Reference

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

37voto

mattsven Points 9086

Vous pouvez le faire avec l'outil jQuery .attr qui définira les attributs. Leur suppression se fait via la fonction .removeAttr fonction.

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

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

1 votes

Bonus pour l'inclusion de la fonction de suppression !

17voto

Jerad Rose Points 5960
$('#someid').attr('disabled', 'true');

7voto

mrzmyr Points 1113
$('#someid').attr('disabled', 'true');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X