Ich bin zufällig während des Entwicklungsprozesses auf dieses Problem gestoßen, und das erste Mal, dass das Problem gelöst wurde, war Baidu. Die Ergebnisse sind wie folgt:
1. Die Lösung, display:none zuerst einzustellen, ist definitiv nicht machbar;
a Das Hinzufügen des Attributs „disabled“ zeigt an, dass die Option nicht verfügbar ist, sie wird jedoch nicht ausgeblendet.
b Wenn Sie die Option ausblenden möchten, können Sie sie nur aus dem DOM-Baum entfernen. und dann die Option löschen Die Option wird zwischengespeichert, und dann die Option aus dem Cache zu nehmen und zum DOM-Baum hinzuzufügen, wenn sie angezeigt werden soll
entspricht definitiv nicht den Anforderungen.
c. Die ultimative Lösung (auf Kompatibilität mit allen Browsern getestet): Fügen Sie der Option ein übergeordnetes Tag hinzu und stellen Sie das übergeordnete Tag auf „Ausblenden“ ein. Wenn Sie es anzeigen möchten, entfernen Sie es das übergeordnete Tag.
Allerdings sind alle oben genannten Methoden nutzlos
Die endgültige Lösung://将select通过clone方法保存 var select= $("#select").clone(); //删除所有的option $("#select").find('option').remove(); //查找出需要显示的option并复制 var options = select.find("option[value=1]").clone(); //将需要显示的option添加到select中 $("#select").append(options); //因为option.remove()不会刷新控件,需要将新的option切换上去 //这里排除了options.size() == 0的情况 $("#select").find('option').eq(0).attr("selected",true);