jQuery如果data-id元素hasClass不起作用

时间:2018-03-27 19:30:16

标签: javascript jquery wordpress if-statement show-hide

我不知道我试图创建的功能是否缺少某个元素,或者我是否遗漏了某些东西,但我的功能根本不起作用。不确定是否遗漏了什么或者我是不是在添加东西。让我知道我提供了jQuery和我试图开始工作的代码的截图。基本上我想要做的是,如果某个具有data-id的元素具有某个类,则隐藏某些列表项。

$(function($){
    if( $('.chbs-vehicle[data-id="313"] a').hasClass('chbs-state-selected') ){
        $('ul.chbs-list-reset li(1)').hide();
    }
});

enter image description here

2 个答案:

答案 0 :(得分:2)

li(1)不是一个有效的表达式,你应该使用不同的评估者:

$('ul.chbs-list-reset li:eq(0)')
$('ul.chbs-list-reset li:first-child')
$('ul.chbs-list-reset li').eq(0)

看看这个 Demo

如果在页面加载时满足您的条件,它就可以正常工作。但是,如果动态添加chbs-state-selected类,则需要使用事件处理程序监听该更改。您拥有的脚本不会不断轮询文档以查看Vehicle 313 a是否有该类。

根据您的评论,听起来您需要侦听添加chbs-state-selected课程的同一点击事件。看看这个基本的 Demo

鉴于此,您不一定需要检查课程,只需将hide/show函数附加到同一事件即可。但是,如有必要,您可以添加hasClass支票。

无论如何,它应该位于首先添加chbs-state-selected的同一个处理程序中

答案 1 :(得分:0)

您可以使用eq:jquery函数

 $(function($){
        if( $('.chbs-vehicle[data-id="313"] a').hasClass('chbs-state-selected') ){
            $('ul.chbs-list-reset li:eq(0)').hide();
        }
    });