jQuery“可见”并不适用于所有浏览器,但适用于 Firefox

2023-12-15

我做了一个非常简单的小提琴here,并且可以在不同的浏览器中查看。

它仅适用于 Firefox。换句话说,似乎$('#select-tag-id option:visible')在其他浏览器中不起作用。怎么了?这是一个 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>

JavaScript(jQuery 代码)是:

$(function(){
    alert($('#items option:visible').length);
});

这不是 jQuery 错误 - 只是(又一个)浏览器差异。

IE不会让你设置display:none在选项元素上(style.display='none' 不适用于选项标签).

如果你看看你的fiddle在 FF 和 IE 中,你会看到<select>在 IE 中仍然包含所有四个元素,但在 FF 中只包含两个元素,无论 jQuery 是否存在。

解决方案可能是实际移除这些元件并在需要时进行更换。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery“可见”并不适用于所有浏览器,但适用于 Firefox 的相关文章