关于javascript:jquery检查属性元素值

jquery check the attribute element value

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
<li style="padding-bottom: 0px; display: none;">
<span> Content </span>

</li>

我想查一下display == none

我用下面的脚本得到了解决方案。

1
2
3
if($(this).closest('li').attr('style') =='padding-bottom: 0px; display: none;'){
    // script
}

任何其他简单的书写方式。谢谢


问题是,您将jquery和普通的JS方法混合在一起,使用.attr().display。您还试图将整个style字符串与一个css规则(如果有效)进行比较。

实现这一点的更好方法是使用jquery的is()方法,以及:visible选择器。试试这个:

1
2
3
if ($(this).closest('li').is(':visible')) {
  // script
}

您可以直接使用:可见或:隐藏选择器:

1
2
3
if ( $('li:visible').length > 0 ) {
    // it is visible
}

可以使用:visible或:hidden选择器with is():

1
2
3
if ( $('li').is(':visible') ) {
    // it is visible
}

最后,您可以使用css()检查"display"的特定值:

1
2
3
if ( $('li').css('display') === 'none' ) {
    // it is hidden
}


如果只想检查元素是否隐藏,可以使用css()方法检查显示是否设置为无。使用.attr('style'),它将返回元素的整个样式。

1
2
3
if($(this).closest('li').css('display') == 'none' ){

}

使用demonstrative示例(我只将内联样式用于演示,但不建议您使用它):

1
2
3
4
5
$('li').each(function(i) {
  if ($(this).css('display') == 'none') {
    console.log(i); // logs the indexes of the hidden elements
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
<li style="padding-bottom: 0px; display: none;">
  <span> Content </span>

</li>

<li style="padding-bottom: 0px; display: none;">
  <span> Content </span>

</li>

<li style="padding-bottom: 0px;">
  <span> Content </span>

</li>