检查元素是否显示:无或单击时阻止.jQuery的

Nic*_*cis 224 css jquery

我想检查和排序隐藏的元素.是否可以找到具有属性display和值的所有元素none.

Adi*_*dil 512

您可以使用:可见元素可见,隐藏查找隐藏元素.此隐藏元素的display属性设置为none.

hiddenElements = $(':hidden');
visibleElements = $(':visible');
Run Code Online (Sandbox Code Playgroud)

检查特定元素.

if($('#yourID:visible').length == 0)
{

}
Run Code Online (Sandbox Code Playgroud)

如果元素占用文档中的空间,则认为元素是可见的.可见元素的宽度或高度大于零, 参考

您还可以使用的是():visible

if(!$('#yourID').is(':visible'))
{

}
Run Code Online (Sandbox Code Playgroud)

如果你想检查显示的值,那么你可以使用css()

if($('#yourID').css('display') == 'none')
{

}
Run Code Online (Sandbox Code Playgroud)

如果您正在使用显示,则display可以使用以下值.

显示:无

显示:内联

显示:块

display:list-item

display:内联块

在此处查看可能display值的完整列表.

使用JavaScript检查显示属性

var isVisible = document.getElementById("yourID").style.display == "block";
var isHidden = document.getElementById("yourID").style.display == "none"; 
Run Code Online (Sandbox Code Playgroud)

  • @NicholasFrancis,我更新了我的答案,找出所有隐藏的元素. (2认同)

Dee*_*yal 54

$("element").filter(function() { return $(this).css("display") == "none" });
Run Code Online (Sandbox Code Playgroud)

  • +1:这实际上比问题*的接受答案*更有用,因为即使父元素具有`style ="display:none;"`,这也会有效.使用`:visible`和`:hidden`的答案将失败,如果你想要特定的元素可见性和隐藏父元素,因为这些选择器返回页面上的整体可见性(这不是问题). (7认同)

jjh*_*okk 27

是的,你可以使用cssfunction.下面将搜索所有div,但您可以根据需要修改它

$('div').each(function(){

    if ( $(this).css('display') == 'none')
    {
       //do something
    }
});
Run Code Online (Sandbox Code Playgroud)


Bar*_*man 10

$('#selector').is(':visible');
Run Code Online (Sandbox Code Playgroud)

  • 注意:这将*不*返回所选元素的特定可见属性,如问题所示,因为`:visible`也取决于父祖先的可见性.如果一个祖先是`display:none`,无论`display`状态如何,所有后代都将不可见. (3认同)

Luc*_*eos 10

jquery中有两种检查可见性的方法:

__CODE____CODE__

您还可以根据选择器中的可见性执行命令;

__CODE__ 要么 __CODE__

  • 注意:这将*不*返回所选元素的特定可见属性,如问题所示,因为`:visible`也取决于父祖先的可见性.如果一个祖先是`display:none`,无论`display`状态如何,所有后代都将不可见. (6认同)

小智 10

使用这个条件: -

if (jQuery(".profile-page-cont").css('display') == 'block'){
    // Condition 
}
Run Code Online (Sandbox Code Playgroud)