<li style="padding-bottom: 0px; display: none;">
<span> Content </span>
</li>
我想查看display == none
我通过以下脚本获得了解决方案。
if($(this).closest('li').attr('style') =='padding-bottom: 0px; display: none;'){
// script
}
任何其他简单的写作方式。 感谢
答案 0 :(得分:7)
你遇到的问题是你在这里混合使用jQuery和vanilla JS方法.attr().display
。您还尝试将整个style
字符串与(如果有效)一个CSS规则进行比较。
实现这一目标的更好方法是使用jQuery的is()
方法以及:visible
选择器。试试这个:
if ($(this).closest('li').is(':visible')) {
// script
}
答案 1 :(得分:1)
如果您只想检查元素是否隐藏,可以使用 css() 方法检查显示是否设置为无。使用.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>
答案 2 :(得分:1)