Comment définir un attribut de données sans ajouter de valeur dans jQuery? Je veux ceci:
<body data-body>
J'ai essayé:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
Tout le reste semble ajouter le deuxième argument sous forme de chaîne. Est-il possible de simplement définir un attribut sans valeur?
javascript
jquery
attributes
attr
David Hellsing
la source
la source
data-body
vsdata-body=""
?required
attribut pour la validation de formulaire HTML5. Je suis sûr qu'il existe de nombreux autres cas d'utilisation valides.Réponses:
La
attr()
fonction est également une fonction de définition. Vous pouvez simplement lui passer une chaîne vide.Une chaîne vide créera simplement l'attribut sans valeur.
la source
null
ne l'est pas est quelque peu surprenant.$(el).prop('data-body', true)
fonctionné pour moi où j'ai$(el).attr('data-body', '')
fini par définir data-body = "data-body" pour moi.$(el).prop('data-body', true)
ne fonctionne pas pour moi.attr()
fonctionne mais il ajoute également une chaîne vide comme valeur de l'attribut que je veux ajouter.Essayez peut-être:
la source
var btn = $(this).get(0); btn.setAttribute("disabled","");
La réponse acceptée ne crée plus d'attribut de nom uniquement (depuis septembre 2017).
Vous devez utiliser la méthode JQuery prop () pour créer des attributs de nom uniquement.
la source
Vous pouvez le faire sans jQuery!
Exemple:
la source
Je ne sais pas si c'est vraiment bénéfique ou pourquoi je préfère ce style mais ce que je fais (en vanille js) est:
Cela ajoutera l'attribut en minuscules sans valeur ou le supprimera s'il existe déjà sur l'élément.
https://developer.mozilla.org/en-US/docs/Web/API/Element/toggleAttribute
la source