我试图检查其他li中的li是否有类可见,并且在这种情况下什么都不做,但如果它没有添加样式宽度:0px。
if (jQuery("li:has(li.is-visible)")){
//nothing at this moment
}
else {
jQuery('ul.cd-gallery li').css({'width' : '0px'});
}
html部分代码
<ul class="cd-item-wrapper">
<li data-type="sve" class="is-visible">
<img class="img-reponsive" src="someimg.jpg" alt="Jabuka" height="150" />
</li>
<li data-type="proizvodi" class="is-hidden">
<img class="img-reponsive" src="someimg.jpg" alt="Jabuka" height="150" />
</li>
<li data-type="vocnaci" class="is-hidden">
<img class="img-reponsive" src="someimg.jpg" alt="Jabuka" height="150" />
</li>
</ul>
</li>
但是我使用jQuery将类从is-hidden更改为is-visible,反之亦然。所以我的代码没有看到任何变化,我有分组显示所有图像。如果有帮助,可以链接到该页面my site
我的Jquery代码是好的,至少我认为,但问题是(如果你在现场检查元素)你看到一堆
答案 0 :(得分:3)
您可以使用hasClass()
(推荐为it's fastest )来检测元素是否具有类:
if ( $("li > ul > li").hasClass('is-visible')) {
//nothing at this moment
} else {
$('ul.cd-gallery li').css({
'width', '0px'
});
}
或is()
:
if ( $("li > ul > li").is('.is-visible')) {
//nothing at this moment
} else {
$('ul.cd-gallery li').css({
'width', '0px'
});
}
答案 1 :(得分:0)
在jquery中使用.hasClass()
。如果将类分配给元素,.hasClass()
方法将返回true,即使其他类也是
if(jQuery("li").hasClass('is-visible')){
}
答案 2 :(得分:0)
支票
if (jQuery("li:has(li.is-visible)")){
总是会成为现实,因为它返回一个jQuery对象。物体是真实的。它不像getElementById那样返回falsey值。你需要检查长度。
if (jQuery("li:has(li.is-visible)").length){
零将是假的,任何数字都是真的。
其他选项是使用返回布尔值的is()
或hasClass()
。