Wie setze ich ein Datenattribut, ohne einen Wert in jQuery hinzuzufügen? Ich will das:
<body data-body>
Ich habe es versucht:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
Alles andere scheint die zweiten Argumente als Zeichenfolge hinzuzufügen. Ist es möglich, nur ein Attribut ohne Wert festzulegen?
javascript
jquery
attributes
attr
David Hellsing
quelle
quelle
data-body
gegendata-body=""
?required
Attribut für die HTML5-Formularüberprüfung. Ich bin sicher, dass es viele andere gültige Anwendungsfälle gibt.Antworten:
Die
attr()
Funktion ist auch eine Setterfunktion. Sie können ihm einfach eine leere Zeichenfolge übergeben.Eine leere Zeichenfolge erstellt einfach das Attribut ohne Wert.
quelle
null
aber nicht überraschend ist.$(el).prop('data-body', true)
hat bei mir funktioniert, wo$(el).attr('data-body', '')
letztendlich data-body = "data-body" für mich festgelegt wurde.$(el).prop('data-body', true)
funktioniert bei mir nicht.attr()
funktioniert, fügt aber auch eine leere Zeichenfolge als Wert des Attributs hinzu, das ich hinzufügen möchte.Vielleicht versuchen Sie:
quelle
var btn = $(this).get(0); btn.setAttribute("disabled","");
Die akzeptierte Antwort erstellt kein reines Namensattribut mehr (Stand September 2017).
Sie sollten die JQuery prop () -Methode verwenden, um Nur-Namen-Attribute zu erstellen.
quelle
Sie können es ohne jQuery tun!
Beispiel:
quelle
Ich bin mir nicht sicher, ob dies wirklich vorteilhaft ist oder warum ich diesen Stil bevorzuge, aber was ich (in Vanille js) mache, ist:
Dadurch wird das Attribut in Kleinbuchstaben ohne Wert hinzugefügt oder entfernt, wenn es bereits im Element vorhanden ist.
https://developer.mozilla.org/en-US/docs/Web/API/Element/toggleAttribute
quelle