Ich kann das nicht herausfinden. Laut W3-Schulen , setzt die geprüfte Eigenschaft den aktivierten Status eines Kontrollkästchens oder gibt diesen zurück.
Warum funktioniert $('input').checked ? $('div').slideDown() : $('div').slideUp();
nicht?
Die Verwendung von prop funktioniert jedoch.
$('input').prop('checked') ? $('div').slideDown() : $('div').slideUp();
Dies ist für ein Kontrollkästchen, das basierend auf einem Datenbankwert überprüft wird.
checked
ist eine DOM-Element-Eigenschaft, also verwende sie für DOM-Elemente anstelle von jQuery-Objekten.
Wenn Sie ein jQuery-Objekt haben, verwenden Sie prop
anstelle von attr
, da Sie eine Eigenschaft überprüfen. Nur als Referenz:
Während [0].getAttribute("checked")
den tatsächlichen Wert zurückgibt.
prop
gibt true
oder false
basierend darauf zurück, ob das Attribut überhaupt existiert oder nicht
In diesem Fall brauchen Sie prop()
anstatt attr()
,
Das Ersetzen von Aufrufen von attr()
mit prop()
in Ihrem Code wird im Allgemeinen funktionieren.
Von Ссылка
Der Unterschied zwischen Attributen und Eigenschaften kann in bestimmten Situationen wichtig sein. Vor jQuery 1.6 berücksichtigte die .attr()
-Methode manchmal Eigenschaftswerte beim Abrufen einiger Attribute, was zu inkonsistentem Verhalten führen konnte. Ab jQuery 1.6 bietet die Methode .prop()
eine Möglichkeit zum expliziten Abrufen von Eigenschaftswerten, während .attr()
Attribute abruft.
elem.checked
==== true (Boolean)
Ändert sich mit dem Kontrollkästchenstatus
$(elem).prop("checked")
==== true (Boolean)
Ändert sich mit dem Kontrollkästchenstatus
elem.getAttribute("checked")
===== "checked" (String)
Anfangszustand des Kontrollkästchens; ändert sich nicht
$(elem).attr("checked") (1.6)
===== "checked" (String)
Anfangszustand des Kontrollkästchens; ändert sich nicht
$(elem).attr("checked") (1.6.1+)
======== "checked" (String)
Ändert sich mit Checkbox-Status
$(elem).attr("checked") (pre-1.6)
======= true (Boolean)
Geändert mit Checkbox-Status
Auch diese URL hilft Ihnen mehr über Ihre Abfragen .prop () vs .attr ()
Ein Unterschied von /is-checked-vs-attr-checked-checked/7
auf Ссылка
Auch zu verstehen The elements atttribute and properties
verweisen Ссылка
Ссылка
$('input').attr('checked')
ist veraltet und man sollte $('input').prop('checked')
verwenden
Außerdem wird $('input').checked
nicht funktionieren, da $('input')
das jquery-Objekt ist und checked
die Eigenschaft ist. Deshalb hat jquery $('input').prop('checked')
für den Zugriff auf die Eigenschaft erstellt.
Um das jQuery-Objekt in ein DOM-Objekt zu konvertieren, müssen Sie jedoch Folgendes tun: $('input')[0].checked
Dies wird zum DOM-Objekt und Sie können dann direkt auf die Eigenschaft mit .
Aber mit jquery, um auf die Eigenschaft zuzugreifen, sollte man dies verwenden:
%Vor%Hoffe das hilft !!
Tags und Links javascript jquery attr checked