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 的 span 的计数,但是如果父 div 设置为 display:none,则渲染时 span 将不会显示,即使它们的 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 回答