3

我正在使用最新的 jquery 版本。(1.9.1)

我有一个空span元素:

<!DOCTYPE html>
 <html>

    <head>
        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <meta charset=utf-8 />
        <title>JS Bin</title>
    </head>

    <body> <span class="c"></span>

    </body>
    <script type='text/javascript'>
        alert($(".c:visible").length);
    </script>

</html>
  • Chrome(最新版本)警报0
  • FF(最新版本)警报1
  • 即(8)警报0

为什么它不在1chrome 上发出警报?该元素未隐藏。

我可以通过使用过滤器来解决这个问题并吐出所有!display:none但想知道我是否做错了什么

http://jsbin.com/urihov/2/edit

4

1 回答 1

1

@inser 是对的,span 是一个内联元素,只有在它有内容时才会获得布局,从而获得其内容的宽度和高度——在这种情况下,宽度和高度为 0,因此如果添加此 css 规则,则对

.c {
  display: block;
}

您将看到警报现在显示为 1,因为您现在已强制它成为块元素,从而继承其父级的宽度并获得布局。

希望能帮助到你,

干杯

于 2013-03-19T07:23:56.173 回答