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 は正しいです。スパンはインライン要素であり、コンテンツがある場合にのみレイアウトを取得し、コンテンツの幅と高さを取得します。この場合、幅と高さが 0 であるため、この css ルールを追加すると、に表示されません。

.c {
  display: block;
}

アラートを強制的にブロック要素にして、親の幅を継承してレイアウトを取得しているため、アラートが 1 になっていることがわかります。

それが役に立てば幸い、

乾杯

于 2013-03-19T07:23:56.173 に答える