1

スパンが1つでも見える場合は、「見える」と警告したい。しかし、関数を実行しているときはアラートが表示されません。サンプルコードリンク

//脚本

if($('.none').find('span').css('display')!='none'){
alert('visible')
}

// html

<div class="none">
<span style="display:none">first</span>
<span style="display:block">second</span>
</div>

// css

.none{display:none}
4

2 に答える 2

5

要素の親が非表示になっている場合、要素は自動的に非表示になるため、非表示の親の表示カウント=0になります。

if($('.none').find('span:visible').length > 0){
    alert('visible');
}

要素を見つけるには、次のように表示されます:block

ライブデモ

visibles = $('.none').find('span').filter(function(){
   if($(this).css('display') == 'block')   
       return $(this);
});
alert(visibles.length);
于 2013-01-23T18:10:28.257 に答える
1

これにより、表示がnoneに設定されていないスパンの数がわかりますが、親divがdisplay:noneに設定されている場合、レンダリング時に、displayプロパティがnoneに設定されていなくても、スパンは表示されません。

var cnt = 0;
$('div.none span').each(function(){
    if($(this).css('display')!='none') cnt++;
});
if(cnt>0) console.log('foo',cnt);

jsFiddleの例

于 2013-01-23T18:18:53.290 に答える