Gegeben die Definition von removeAttr aus der jQuery-Bibliothek (siehe unten). Ich würde ja sagen.
%Vor%Quelle: Jquery 1.4.3 unkomprimierte Version
Obwohl es von Natur aus subjektiv ist. Ich denke, dass die Verwendung von removeAttr ein selbstdokumentierender Ansatz ist. Ich könnte jedoch sehen, dass andere Menschen das Gegenteil denken.
Sie sind ziemlich verschiedene Operationen:
attr (x, '') setzt ein Attribut auf eine leere Zeichenfolge
removeAttr (x) löscht die Eigenschaft des Objekts nach Möglichkeit oder entfernt sie und setzt sie auf ihren Standardwert zurück, wenn sie von der DTD für diese Objektklasse definiert ist.
.removeAttr(x);
entspricht .removeAttribute("x");
, während .attr(x, '')
einfach .x
auf eine leere Zeichenfolge setzt. Siehe jQuery removeAttr
ref und die entsprechenden mozilla removeAttribute
ref für weitere Informationen.
Einige Attribute sind boolesch (ob sie existieren oder nicht existieren). Nehmen wir zum Beispiel das Attribut disabled
. Wenn es existiert, dann ist es wahr, es spielt keine Rolle, auf was der Wert eingestellt ist. Sie müssten also .removeAttr('disabled')
verwenden, um das Element erneut zu aktivieren. JQuery normalisiert es jedoch ein wenig, Sie könnten .attr('disabled', false);
verwenden. Also denke ich, die Antwort ist Semantik.
Bearbeiten:
Diese Antwort hat gerade einige Upvotes bekommen, die darauf aufmerksam gemacht haben, dass ich das vor einigen Jahren beantwortet habe.
Verwenden Sie dies stattdessen für Eigenschaften -
%Vor%NICHT removeProp ('disabled') verwenden, da dies die Eigenschaft aus dem DOM-Objekt löscht (was Sie nicht vorhaben).
Erster Unterschied:
%Vor% Der zweite Unterschied, wahrscheinlich nur mir passiert, ist .removeAttr()
funktioniert korrekt in Firefox und IExplorer, aber nicht sehr gut in Chrome und funktionieren überhaupt nicht auf Safari.
Tags und Links jquery