jQuery";可见的;不';不能在所有浏览器中工作,但在Firefox中可以
我制作了一个非常简单的小提琴,你可以在不同的浏览器中查看它 它只适用于Firefox。换句话说,jQuery";可见的;不';不能在所有浏览器中工作,但在Firefox中可以,jquery,firefox,jquery-selectors,cross-browser,Jquery,Firefox,Jquery Selectors,Cross Browser,我制作了一个非常简单的小提琴,你可以在不同的浏览器中查看它 它只适用于Firefox。换句话说,$(“#选择标记id选项:可见”)似乎在其他浏览器中不起作用。发生了什么?这是jQuery错误吗 代码是: <select id='items'> <option value='1' style='display: none;'>One</option> <option value='1' style='display: block;'>
$(“#选择标记id选项:可见”)
似乎在其他浏览器中不起作用。发生了什么?这是jQuery错误吗
代码是:
<select id='items'>
<option value='1' style='display: none;'>One</option>
<option value='1' style='display: block;'>Two</option>
<option value='1' style='display: block;'>Three</option>
<option value='1' style='display: none;'>Four</option>
</select>
这不是一个jQuery错误——只是(又一个)浏览器的差异 IE不允许您在选项元素()上设置
display:none
如果您同时查看FF和IE中的小提琴,您将看到,
仍然包含IE中的所有四个元素,但FF中只有两个元素,而不管jQuery是否存在
解决方案可能是实际移除元件并在需要时进行更换。事实上,
:hidden
和:visible
在上不起作用
您可以尝试使用disabled=“disabled”
参见:
好吧,好吧。让我们把IE放在一边(就像这个该死的浏览器一样)。但歌剧院或Chrome呢?它们是否也支持选项上的显示:无?当然有。但他们似乎无法根据标签的可见性状态过滤标签。这个问题再次出现,而且初步研究似乎没有发现任何关于这种差异的问题,甚至在任何浏览器的公共bug跟踪器中也没有发现。真奇怪。我想这就是我们现在所拥有的。值得注意的是,multiple
属性不会影响任何浏览器中的结果,即使该属性会导致显示尽可能多的选项,只要选择的高度允许。
$(function(){
alert($('#items option:visible').length);
});