Jquery 可见选项元素的长度始终显示“0”`

Jquery 可见选项元素的长度始终显示“0”`,jquery,select,option,Jquery,Select,Option,我只想知道可见选项元素的长度 所有元素的相同值为必须具有 以下代码始终显示0 请帮忙 $('select option[data id=2]')。隐藏(); var exist=$('select option[value=1]:可见')。长度; 警报(存在) 测试1 测试2 $('select option[data id=2]')。隐藏(); 变量长度=$('select option[value=1]')。筛选器(函数(){ 返回$(this.css('display')!='non

我只想知道可见
选项
元素的
长度

所有元素的相同值为必须具有

以下代码始终显示
0

请帮忙

$('select option[data id=2]')。隐藏();
var exist=$('select option[value=1]:可见')。长度;
警报(存在)

测试1
测试2
$('select option[data id=2]')。隐藏();
变量长度=$('select option[value=1]')。筛选器(函数(){
返回$(this.css('display')!='none';
}).长度;
警报(长度)

测试1
测试2

在Firefox中运行时,我得到1,但在Chrome中运行时得到0

问题似乎源于Chrome在显示整个select元素之前运行代码,而Firefox在显示select元素之后运行代码

以下内容在Firefox中显示2后跟0,而在Chrome中显示0后跟2

var exist=$('option:visible')。长度;
警报(存在);
存在=$('option:hidden')。长度;
警报(存在)

测试1
测试2

alert()
向您显示1?这是不可能的,我只是在不同的浏览器和计算机上尝试过。“所有选项元素都被认为是隐藏的,不管它们的选择状态如何。”-我也收到了警报1。查看屏幕截图。你们是如何得到
1
??=))我得到0。请注意,即使您没有
hide()
themes.FYI,在我的浏览器(Safari/Mac)上,该选项实际上并未隐藏(但警报显示为1)。但在chrome中,它隐藏了第二个选项,并将计为0。。通过这种方式,它将检查显示块和计数,效果非常好,但仍然对不同的用户报告不同的结果感到困惑。。。我在Mac/Safari,即Chrome上进行了测试,得到了一致的结果。@guradio:对Ghasan和vijayP的评论没有评论?=)只是被忽略了?@AlexG我在尝试你的代码片段时也得到了0,但是当我使用safari时,secont选项没有隐藏,也许他们正在使用safari,我不认为这是一个时间问题。尝试将代码放入
setTimeout
回调以确认。即使你等待,Safari也会以同样的方式行动。@Owen我认为你是对的。浏览器行为不同的原因很有趣。