-1

こんにちは、隠し div が 1 つあり、その中に可視スパンがあります。span に display none プロパティがない場合、テキストで警告したいと思います。

<head>
    <script type="text/javascript">
        $(function() {
            if($('span').is(':visible')){
                alert(0)
            }
        })
    </script>
</head>
<body>
    <div class="fa" style="display:none">
        <span>sdf</span>
    </div>
</body>
4

4 に答える 4

3

jQueryAPIによると

要素がドキュメント内のスペースを消費する場合、要素は表示されていると見なされます。表示される要素の幅または高さがゼロより大きい。

あなたはで隠されているの<span>子です-つまり、ドキュメント内のスペースを消費することも、消費することもありません。<div>display: none<div><span>

これは、あなた<span>が隠されており、スクリプトにエラーがないことを意味します-それはそれが行うと想定していることを正確に実行します。

于 2013-01-14T18:42:55.393 に答える
1

アラートが発生しない理由は、アラートがspan表示されないためです。を持っている要素内に含まれているという事実は、それdisplay: noneが表示されないことを意味します。display: noneそれ自体であるかどうかを具体的に確認したい場合は、を使用してくださいcss

        if($('span').css('display') != "none"){
            alert(0)
        }
于 2013-01-14T18:43:46.010 に答える
1

jQuery をインポートしません。

headこれをあなたの要素に追加してください:

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

HTML ファイルには、HTML の開始要素と終了要素、およびできれば doctype も含まれている必要があることに注意してください。次のファイルが機能します。

<!DOCTYPE html>
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
    <script type="text/javascript">
    $(function(){
      if($('span').is(':visible')){
       alert(0)
    }})
    </script>
</head>
<body>
<div class="fa" style="display:none">
<span>sdf</span>
</div>
</body>
</html>

スパンが表示されていないdivにあるため、何もしません。

要素にスタイル display=none が直接設定されていないかどうかを正確に知りたい場合は、次のようにテストします。

if ($('span').get(0).style.display!='none') {

デモンストレーション

于 2013-01-14T18:39:27.820 に答える
0

あなたの問題は、span要素を含むdivがプロパティとしてdisplay:noneを持っていることです。このフィドルを試してください。noneの代わりにdisplay:hiddenを置くだけで、JSが機能します。

<div class="fa" style="display:hidden"><span>sdf</span></div>
于 2013-01-14T18:45:05.530 に答える