jQuery .prop() vs. .attr()
jQuery 1.6 führte die neue prop()-Methode ein, die einige Fragen dazu aufwarf Verwendung im Vergleich zur vorhandenen attr()-Methode.
Wann zu verwenden .prop()
Im Allgemeinen sollten Sie prop() aus folgenden Gründen gegenüber attr() bevorzugen:
-
Genauigkeit: prop( ) ruft die tatsächliche Eigenschaft des DOM-Elements ab, während attr() das Attribut abruft, das möglicherweise nicht immer den aktuellen Status des Elements widerspiegelt Element.
-
Typbewusstsein: prop() gibt den Eigenschaftswert in seinem richtigen Typ zurück (z. B. ein Boolescher Wert für geprüft), während attr() immer eine Zeichenfolge zurückgibt.
-
Klarheit: prop() gibt deutlicher an, um welche Eigenschaft es sich handelt Zugriff.
Wann .attr() verwendet werden sollte
attr() ist in bestimmten Situationen immer noch nützlich:
-
Benutzerdefinierte Attribute: attr() kann benutzerdefinierte Attribute abrufen oder festlegen, die Sie dem hinzufügen DOM.
-
Boolesche Attribute: Bei einigen booleschen Attributen (z. B. geprüft) spiegelt prop() den aktuellen Status wider, während attr() den Standardwert widerspiegelt (obwohl jQuery 1.6. 1 hat attr() auf sein altes Verhalten für boolesche Attribute zurückgesetzt.
Unterschiede im Attribut und Eigenschaftenverhalten
Der Hauptunterschied zwischen Attributen und Eigenschaften besteht darin, dass Attribute im HTML-Markup gespeichert werden, während Eigenschaften vom Browser dynamisch berechnet werden. Dies kann in bestimmten Fällen zu Unstimmigkeiten führen, wie zum Beispiel:
-
Eingabewert und geprüfter Zustand: Der Wert und die geprüften Eigenschaften repräsentieren den aktuellen Zustand des Eingabeelements, während die entsprechenden Attribute (Wert und aktiviert) stellen den Standard- oder Anfangszustand dar.
-
Stil: Die Stileigenschaft ist ein Objekt, das CSS-Eigenschaften enthält. während das Stilattribut eine Zeichenfolgendarstellung des Inline-CSS ist.
Auswirkungen auf vorhandenen Code
Ersetzen aller Instanzen von attr() durch prop() in jQuery 1.6 wird im Allgemeinen funktionieren. Möglicherweise müssen Sie jedoch boolesche Attribute manuell bearbeiten, bei denen Sie sich zuvor auf attr() verlassen haben, um den Standardstatus wiederzugeben.
Das obige ist der detaillierte Inhalt vonjQuery .prop() vs. .attr(): Wann sollte ich die einzelnen Methoden verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!