<select size="2">
<option selected="selected">Input your option</option>
<option>Input your option</option>
</select>
Was ist der beste Weg, mit jQuery die Option elegant abzuwählen?
Verwenden Sie removeAttr ...
$("option:selected").removeAttr("selected");
Oder Prop
$("option:selected").prop("selected", false)
.val([])
oder.prop("selected", false)
- nach unten scrollen.$("option:selected").prop("selected", false)
manchmal funktioniert es nicht. (funktioniert nicht im Chrome-Browser mit jquery v1.4.2)Hier gibt es viele Antworten, aber leider sind alle ziemlich alt und verlassen sich daher auf
attr
/removeAttr
was wirklich nicht der richtige Weg ist.@coffeeyesplease erwähnt korrekt, dass eine gute browserübergreifende Lösung zu verwenden ist
Eine weitere gute browserübergreifende Lösung ist
Sie können es sehen , einen Selbsttest läuft hier . Getestet auf IE 7/8/9, FF 11, Chrome 19.
quelle
Array.indexOf
braucht eine polyfill für IE <9 (oder Sie können eine beliebige gleichwertige Methode verwenden , dass viele JS Bibliotheken bereitstellen).$('#select').val([]);
? Leider wird dasselected="selected"
Attribut dadurch nicht entfernt . Das kann dazu führen, dass falsche Daten veröffentlicht werden. Ich empfehle diesen Ansatz nicht!Es ist schon eine Weile her, seit ich gefragt wurde, und ich habe dies nicht mit älteren Browsern getestet, aber es scheint mir eine viel einfachere Antwort zu sein
.val () funktioniert auch für select http://api.jquery.com/val/
quelle
$("select option").prop("selected", false);
Funktioniert universell (bei Mehrfach- und Einzelauswahl).Einfachste Methode
$('select').val('')
Ich habe dies einfach für die Auswahl selbst verwendet und es hat den Trick gemacht.
Ich bin auf jQuery 1.7.1 .
quelle
Antworten funktionieren bisher nur für Mehrfachauswahl in IE6 / 7; Für die häufigere Nicht-Mehrfachauswahl müssen Sie Folgendes verwenden:
Dies wird in dem von flyfishr64 verlinkten Beitrag erklärt. Wenn Sie es sich ansehen, werden Sie sehen, wie es zwei Fälle gibt - Multi / Nicht-Multi. Nichts hindert Sie daran, beide nach einer vollständigen Lösung zu suchen:
quelle
Oh jquery.
Da es noch einen nativen Javascript-Ansatz gibt, muss ich einen bereitstellen.
Und nur um Ihnen zu zeigen, wie viel schneller dies ist: Benchmark
quelle
Dies würde jedes Element durchlaufen und nur diejenigen auswählen, die aktiviert sind
quelle
Ein kurzer Blick auf Google hat diesen Beitrag gefunden , in dem beschrieben wird, wie Sie für einzelne und mehrere Auswahllisten im IE das tun, was Sie möchten. Die Lösung scheint auch ziemlich elegant zu sein:
quelle
quelle
quelle
Vielen Dank für die Lösung.
Die Lösung für die Single-Choice-Combo-Liste funktioniert einwandfrei. Ich habe dies gefunden, nachdem ich auf vielen Websites gesucht habe.
quelle
quelle
Ein anderer einfacher Weg:
$("#selectedID")[0].selectedIndex = -1
quelle
Wenn ich ein Auswahlmenü verwende, ist normalerweise jeder Option ein Wert zugeordnet. Beispielsweise
Dadurch wird das ausgewählte Attribut nicht aus der Option entfernt, aber alles, was ich wirklich möchte, ist der Wert.
quelle
Legen Sie eine ID in Ihrer Auswahl fest, wie:
<select id="foo" size="2">
Dann können Sie verwenden:
$("#foo").prop("selectedIndex", 0).change();
quelle