In Versionen von jQuery vor 1.6 verwenden Sie:
$('input[name="correctAnswer"]').attr('checked', false);
In jQuery-Versionen nach 1.6 sollten Sie Folgendes verwenden:
$('input[name="correctAnswer"]').prop('checked', false);
Wenn Sie jedoch 1.6.1+ verwenden, können Sie das erste Formular verwenden (siehe Anmerkung 2 unten).
Anmerkung 1: Es ist wichtig, dass das zweite Argument falsch und nicht "falsch" ist. da "falsch" kein falscher Wert ist. dh
if ("false") {
alert("Truthy value. You will see an alert");
}
Anmerkung 2: Ab jQuery 1.6.0, gibt es nun zwei ähnliche Verfahren, .attr
und .prop
das tun zwei verwandte , aber etwas andere Dinge. Wenn in diesem speziellen Fall die oben genannten Hinweise funktionieren, wenn Sie 1.6.1+ verwenden. Das Obige funktioniert nicht mit 1.6.0. Wenn Sie 1.6.0 verwenden, sollten Sie ein Upgrade durchführen. Wenn Sie die Details erfahren möchten, lesen Sie weiter.
Details: Wenn mit geraden HTML DOM - Elementen arbeiten, gibt es Objekte, die das DOM - Element angebracht ( checked
, type
, value
, usw.) , die eine Schnittstelle zum Betriebszustand der HTML - Seite zur Verfügung stellen. Es gibt auch die .getAttribute
/.setAttribute
-Schnittstelle, die den Zugriff auf die im HTML bereitgestellten HTML-Attributwerte ermöglicht. Vor 1.6 verwischte jQuery die Unterscheidung, indem eine Methode bereitgestellt wurde .attr
, um auf beide Wertetypen zuzugreifen. jQuery 1.6 + bietet zwei Methoden, .attr
und .prop
zwischen diesen Situationen zu unterscheiden zu bekommen.
.prop
Mit dieser Option können Sie eine Eigenschaft für ein DOM-Element .attr
festlegen und einen HTML-Attributwert festlegen. Wenn Sie mit einfachen DOM und legen Sie die Eigenschaft checked arbeiten, elem.checked
an true
oder false
Sie den laufenden Wert ändern (was der Benutzer sieht) und die zurückgegebene Wert Spuren , die auf Seite Zustand. elem.getAttribute('checked')
Gibt jedoch nur den Anfangszustand zurück (und gibt 'checked'
oder undefined
abhängig vom Anfangszustand aus dem HTML zurück). In 1.6.1+ bewirkt using .attr('checked', false)
beides elem.removeAttribute('checked')
und elem.checked = false
da die Änderung viele Abwärtskompatibilitätsprobleme verursacht hat und nicht wirklich erkennbar ist, ob Sie das HTML-Attribut oder die DOM-Eigenschaft festlegen möchten . Weitere Informationen finden Sie in der Dokumentation zu .prop .
#(selector).prop('checked',true);
schlägt dies fehl, wenn anschließend versucht wird, ein nachfolgendes Optionsfeld in derselben Gruppe auf einen nicht aktivierten Status zu setzen. Der Trick besteht darin , das Optionsfeld nur in einen aktivierten Zustand zu versetzen und die Optionsfeldgruppe das tun zu lassen, was sie tut (deaktivieren Sie die anderen ...) . Das Aufrufen$(selector).click();
funktioniert auch und löst alle zugehörigen Ereignisse aus.