我試圖從下拉菜單中隱藏一些選項。 JQuery的.hide()和.show()在Firefox和Chrome中運行良好,但在IE中沒有運氣。如何在IE中隱藏和顯示帶有JQuery的SELECT選項
任何好主意?
我試圖從下拉菜單中隱藏一些選項。 JQuery的.hide()和.show()在Firefox和Chrome中運行良好,但在IE中沒有運氣。如何在IE中隱藏和顯示帶有JQuery的SELECT選項
任何好主意?
在許多可能的方法中,此方法需要瀏覽器嗅探(通常不是很好),但不需要具有同一選擇列表的多個副本進行交換。
//To hide elements
$("select option").each(function(index, val){
if ($(this).is('option') && (!$(this).parent().is('span')))
$(this).wrap((navigator.appName == 'Microsoft Internet Explorer') ? '<span>' : null).hide();
});
//To show elements
$("select option").each(function(index, val) {
if(navigator.appName == 'Microsoft Internet Explorer') {
if (this.nodeName.toUpperCase() === 'OPTION') {
var span = $(this).parent();
var opt = this;
if($(this).parent().is('span')) {
$(opt).show();
$(span).replaceWith(opt);
}
}
} else {
$(this).show(); //all other browsers use standard .show()
}
});
信用這個完全在於迪馬Svirid這裏:http://ajax911.com/hide-options-selecbox-jquery/
這是有效的,但最終更好,更清潔的跨瀏覽器解決方案是使用腳本實時創建,添加和刪除選定項目。 –
優秀的@tony :)完美的作品! –
這非常令人難以置信,儘管令人遺憾的是我可以找到一個項目的唯一解決方案,該項目需要大量的重新編碼才能實現任何其他方法。乾杯。 – AJReading
只是提一提,IE11 navigator.appName返回「Netscape的:) 所以考慮到這一點:
$("select option[value='your_option_value']").wrap((navigator.appName == 'Microsoft Internet Explorer' || navigator.appName == 'Netscape') ? '<span>' : null).hide();
This是一個好點。但是,其他瀏覽器可以[也選擇在這裏返回'網景'](http://stackoverflow.com/questions/14573881/why-does-javascript-navigator-appname-return-netscape-for-safari-firefox-and- ch),所以你的里程可能會有所不同。 –
能我們看到一些代碼maby? –