Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果类被更改,jQuery执行代码_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如果类被更改,jQuery执行代码

Javascript 如果类被更改,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

我试着检查其他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将类从“隐藏”更改为“可见”,反之亦然。因此,我的代码看不到任何更改,我必须将所有图像分组以显示所有图像。如果有帮助,这里是链接到该页面

至少我认为,我的Jquery代码是好的,但问题是(如果你在现场检查元素)你会看到一堆
  • 和wehn你会改变类别,我需要隐藏没有li>ul>li class=“is visible”的元素(宽度:0)

    在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){