将类添加到具有classname treeview的元素

时间:2017-06-19 22:56:04

标签: jquery

我的代码出错了

True

错误是

  

未捕获错误:语法错误,无法识别的表达式:[object HTMLLIElement] .treeview

如何纠正?

2 个答案:

答案 0 :(得分:0)

您要连接对象和字符串。如果您要做的是找到由this表示的DOM节点的子节点,则首先需要创建一个jQuery实例:

$(this)

然后使用api选择与该类匹配的子项:

$(this).children('.treeview')...

但如果您正在寻找任何后代,请使用.find()

$(this).find('.treeview')...

或者您可以使用简写形式:

$('.treeview', this)...

答案 1 :(得分:0)

我终于通过使用@zzzzBov回答解决了我的问题

这是完整的代码

$('.dinz-submenu').click(function (e) {
    e.stopPropagation();
});

$('.sidebar-menu li').click(function (e) {
    if ($(this).hasClass('treeview')) {
        $('.sidebar-menu li ').removeClass('active');
        $('.treeview-menu').slideUp();

        if(!$(this).find('.treeview-menu').is(':visible')){
            $(this).children('.treeview-menu').slideDown();
        }
        $(this).addClass('active');

        return false;
    } else {
        if ($(this).hasClass('dinz-submenu')) {
            $('.treeview-menu li ').removeClass('active');
        } else {
            $('.treeview-menu').slideUp();
            $('.sidebar-menu li ').removeClass('active');
        }
    }
});