Javascript 如果类被更改,jQuery执行代码
我试着检查其他li类中的li是否可见,在这种情况下什么都不做,但如果它没有添加样式宽度:0pxJavascript 如果类被更改,jQuery执行代码,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我试着检查其他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-typ
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将类从“隐藏”更改为“可见”,反之亦然。因此,我的代码看不到任何更改,我必须将所有图像分组以显示所有图像。如果有帮助,这里是链接到该页面
至少我认为,我的Jquery代码是好的,但问题是(如果你在现场检查元素)你会看到一堆.hasClass()
。如果类被分配给元素,则.hasClass()
方法将返回true,即使其他类也被分配
if(jQuery("li").hasClass('is-visible')){
}
您可以使用
hasClass()
(建议如下)检测元素是否具有类:
或is()
:
支票
if (jQuery("li:has(li.is-visible)")){
始终为true,因为它返回jQuery对象。物体是真实的。它不像getElementById那样返回假值。你需要检查一下长度
if (jQuery("li:has(li.is-visible)").length){
零是假的,任何数字都是真的
另一个选项是使用返回布尔值的
is()
或hasClass()
使用if($('li').hasClass('is-visible')){}else{}
。您要找的是什么?问题是有这么多li元素,而且在任何情况下至少有一个have是可见的,所以我总是得到相同的响应,请尝试使用'if(jQuery(“li:has(li.is visible)”).length){'并且尝试了所有其他想法仍然没有成功。OP的问题不是做脚本中关于类更改的部分吗?那么如何查找/检测某个元素类是否已从一个更改为另一个?想知道为什么这是被否决的。为什么它永远不会进入else的有效答案。使用is()时需要类选择器的点
。另外,我认为OP遗漏了一些HTML,因为他说“li在另一个li中”,所以选择器必须是$(“li>ul>li.is visible”)
。谢谢@Tim的更正:)我刚刚更新了答案。
if (jQuery("li:has(li.is-visible)")){
if (jQuery("li:has(li.is-visible)").length){