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, .attrund .propdas 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, .attrund .propzwischen diesen Situationen zu unterscheiden zu bekommen.
.propMit dieser Option können Sie eine Eigenschaft für ein DOM-Element .attrfestlegen und einen HTML-Attributwert festlegen. Wenn Sie mit einfachen DOM und legen Sie die Eigenschaft checked arbeiten, elem.checkedan trueoder falseSie 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 undefinedabhängig vom Anfangszustand aus dem HTML zurück). In 1.6.1+ bewirkt using .attr('checked', false)beides elem.removeAttribute('checked')und elem.checked = falseda 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.