jquery检查属性元素值
这个问题在这里已经有了答案:
你遇到的问题是你在这里使用.attr().display
来混合jQuery和vanilla JS方法。 你也试图将整个style
字符串与(如果有效的话)一个CSS规则进行比较。
实现这一点的更好方法是使用jQuery的is()
方法,以及:visible
选择器。 尝试这个:
if ($(this).closest('li').is(':visible')) {
// script
}
如果只想检查元素是否隐藏,可以使用css()方法检查显示是否设置为none。 使用.attr('style')
它会返回元素上的整个样式。
if($(this).closest('li').css('display') == 'none' ){
}
工作demonstrative
示例(我已将内联样式仅用于演示,但我不建议您使用它):
$('li').each(function(i) {
if ($(this).css('display') == 'none') {
console.log(i); // logs the indexes of the hidden elements
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<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>
你可以直接使用:visible或hidden选择器:
if ( $('li:visible').length > 0 ) {
// it is visible
}
您可以使用:可见或:使用is()的隐藏选择器:
if ( $('li').is(':visible') ) {
// it is visible
}
最后,你可以用css()检查'display'的具体值:
if ( $('li').css('display') === 'none' ) {
// it is hidden
}
链接地址: http://www.djcxy.com/p/2399.html