Mein Code funktioniert im Internet Explorer, funktioniert jedoch nicht in Safari, Firefox und Opera. (große Überraschung)
document.getElementById("DropList").options.length=0;
Nach der Suche habe ich gelernt, dass es das ist length=0
, was es nicht mag.
Ich habe es versucht ...options=null
und var clear=0; ...length=clear
mit dem gleichen Ergebnis.
Ich mache dies mit mehreren Objekten gleichzeitig, also suche ich nach leichtem JS-Code.
javascript
html-select
Kirt
quelle
quelle
<option selected>
Dateien ?? (Google hat uns hierher gebracht, aber es ist nicht hier) ... Siehe document.getElementById ("form1"). reset () echte Lösung.Antworten:
Sie können Folgendes verwenden, um alle Elemente zu löschen.
quelle
empty()
, also würden Sie tun$("DropList").empty();
Um die Optionen eines HTML-Elements von zu entfernen
select
, können Sie die folgenderemove()
Methode verwenden:Es ist wichtig, die
options
rückwärts zu entfernen ; während dieremove()
Methode dieoptions
Sammlung neu ordnet . Auf diese Weise ist garantiert, dass das zu entfernende Element noch vorhanden ist!quelle
Wenn Sie ein leichtes Skript wünschen, wählen Sie jQuery. In jQuery lautet die Lösung zum Entfernen aller Optionen wie folgt:
quelle
for (a in select.options) { select.options.remove(0); }
die Arbeit gut funktioniert.$("#droplist").empty();
lohnt sich die Hinzufügung von jQuery aufgrund der Lesbarkeit von hundert Zeilen Typcode im Vergleich zu Tausenden von Zeilen Vanilla JS. Wenn es sich um Markup / Kosmetik für eine einfache Webseite handelt, sind Sie zu 100% korrekt.Wahrscheinlich nicht die sauberste Lösung, aber es ist definitiv einfacher als das Entfernen nacheinander:
quelle
Dies ist der beste Weg:
quelle
while (comboBox.options.length) comboBox.remove(0);
Dies ist ein kurzer Weg:
Eine Zeile, nein für, keine JQuery, einfach.
quelle
quelle
Ich möchte darauf hinweisen, dass das Problem in der ursprünglichen Frage heute nicht mehr relevant ist. Und es gibt eine noch kürzere Version dieser Lösung:
Ich habe getestet, dass beide Versionen in Firefox 52, Chrome 49, Opera 36, Safari 5.1, IE 11, Edge 18, den neuesten Versionen von Chrome, Firefox, Samsung Internet und UC Browser unter Android, Safari auf iPhone 6S und Android 4.2 funktionieren. 2 Aktienbrowser. Ich denke, es ist sicher zu schließen, dass es absolut kompatibel mit jedem Gerät ist, das es derzeit gibt, daher empfehle ich diesen Ansatz.
quelle
Dies ist ein bisschen modernes und reines JavaScript
document.querySelectorAll('#selectId option').forEach(option => option.remove())
quelle
mit PrototypeJS :
quelle
Wenn Sie JQuery verwenden und Ihr Auswahlsteuerelement die ID "DropList" hat, können Sie seine Optionen folgendermaßen entfernen:
Eigentlich funktioniert es bei mir mit jeder Optionsliste, wie z. B. Datenliste.
Ich hoffe es hilft.
quelle
Beachten Sie, dass eine Auswahl kann haben beide
- optgroup &
- Optionen Kollektion
als .
So,
Methode 1
Methode 2
Ich habe getestet, beide funktionieren auf Chrome.
Ich mag die einfachere, altmodische Methode Nr. 1.
quelle
$select.html('')
Versuchen
Oder schauen Sie sich die Funktion removeChild () an.
Oder wenn Sie das jQuery-Framework verwenden.
quelle
Die Verwendung von JQuery ist eine schönere, kürzere und intelligentere Methode!
quelle
Dies kann verwendet werden, um Optionen zu löschen:
quelle
Gehe rückwärts. Grund ist, dass die Größe nach jedem Entfernen abnimmt.
quelle
Hoffe, dieser Code wird Ihnen helfen
quelle
Ich denke das ist das beste Sol. ist
quelle
Die einfachsten Lösungen sind die besten, Sie brauchen also nur:
quelle
Die Elemente sollten in umgekehrter Reihenfolge entfernt werden, da sonst ein Fehler verursacht wird. Außerdem empfehle ich nicht, einfach die Werte auf zu setzen
null
, da dies zu unerwartetem Verhalten führen kann.Oder wenn Sie es vorziehen, können Sie es zu einer Funktion machen:
quelle
quelle
Der Code der obigen Antwort muss geringfügig geändert werden, um die vollständige Liste zu entfernen. Überprüfen Sie diesen Code.
Aktualisieren Sie die Länge und es werden alle Daten aus der Dropdown-Liste entfernt. Hoffe das wird jemandem helfen.
quelle
quelle
Wenn Sie IE unterstützen müssen und mehr als 100 Elemente in Ihrer Auswahlliste haben, empfehle ich dringend, die Auswahl durch eine Funktion wie die folgende zu ersetzen:
Der select-Parameter sollte das Element sein, das entweder aus einem jquery-Selektor oder einem Aufruf von document.getElementBy stammt. Der einzige Nachteil dabei ist, dass Sie Ereignisse verlieren, die Sie mit der Auswahl verbunden haben, aber Sie können sie leicht wieder anbringen, wenn sie wieder aus der Funktion zurückgegeben werden. Ich habe mit einer Auswahl gearbeitet, die ~ 3k Elemente enthielt, und es würde 4 Sekunden auf IE9 dauern, um die Auswahl zu löschen, damit ich sie mit dem neuen Inhalt aktualisieren konnte. Fast augenblicklich auf diese Weise.
quelle
$('#selectbox').replaceWith($('#selectbox')[0].cloneNode(false));
Für Vanilla JavaScript gibt es eine einfache und elegante Möglichkeit, dies zu tun:
quelle
Heute hatte ich das gleiche Problem wie beim erneuten Laden des Auswahlfelds. (In Plain JS)
quelle
quelle