$(“#id option”)。hide(); 没有在safari / chrome上工作?

同样的:

$("#id option").show(); 

我很惊讶。 我认为我的代码出了问题。 我用空白的html尝试了它:

  1 2  

使用Javascript:

 ​$("#name option").hide();​ 

http://jsfiddle.net/kgLkt/

它就像火狐的魅力,但不是safari和铬!

有替代品吗?!

编辑:我需要隐藏/显示选项(或其中一些)出现在列表中。

隐藏:

 var myOpts = $("#id option").detach(); 

显示:

 $("#id option").append(myOpts); 

.remove()相反, .detach()保留与删除的元素关联的所有jQuery数据。

使用标准选择我不认为有任何跨浏览器方式来隐藏选择选项。

您可以查找自定义选择控件,也可以在分离的变量上保留完整的项目列表,并根据需要从选择中删除/添加项目。

嗯。 可能是一个实施问题……

也许试试吧

 $("#name option").remove(); 

如果你需要保持对已删除内容的一些了解,那么请事先将它们加载到变量中。

 var $opts = $("#name option"); 

然后你可以使用索引将它们添加回来:

 $("#name").append( $opts.eq(n) ); 

你没有在小提琴中选择jQuery。 无论如何,您需要将 selectedIndex设置为-1以清除当前选择的选项: http : //jsfiddle.net/kgLkt/2/ 。

 $("#name option").hide().parent().prop("selectedIndex", -1);​​​​​​ 

这将适用于safari

  var select = $('#name'); var diff = 0; console.dir(select[0].options); select.find('option').each(function(x) { select[0].options[x+diff] = null; diff -= 1; });