Jquery 查找数据属性并添加类

Jquery 查找数据属性并添加类,jquery,custom-data-attribute,Jquery,Custom Data Attribute,我一直在想办法。我想让用户单击a href,获取该a href的数据属性,然后在DOM中找到与该数据属性匹配的类(它将是一个li,并向其中添加一个活动类) 到目前为止,我已经尝试了100种不同的方法: $('ul li a').click(function(){ $(this).parent().removeClass('active'); var dataitem = $(this).data('item'); $('ul li').find(dataitem).add

我一直在想办法。我想让用户单击a href,获取该a href的数据属性,然后在DOM中找到与该数据属性匹配的类(它将是一个li,并向其中添加一个活动类)

到目前为止,我已经尝试了100种不同的方法:

$('ul li a').click(function(){
    $(this).parent().removeClass('active');
    var dataitem = $(this).data('item');
    $('ul li').find(dataitem).addClass('active');
    console.log(dataitem);
});
HMTL:

.find()
方法允许搜索选择器中指定元素的后代,但在您的情况下,
.find()
将不起作用

试试这个:-

$('ul li a').click(function(e){
    $('ul li.active').removeClass('active'); //remove '.active' class from all li's
    var dataitem = $(this).data('item');
    $('ul li.' + dataitem).addClass('active');
    e.preventDefault();
});

$(this.parent().removeClass('active');
可能会产生不希望的结果。您可能需要使用
$('ul li.active')。removeClass('active')
)或类似的东西。编辑:我个人喜欢这样的东西:
$(this.parent().sides().removeClass().removeClass('active');
这太完美了!谢谢!
$('ul li a').click(function(e){
    $('ul li.active').removeClass('active'); //remove '.active' class from all li's
    var dataitem = $(this).data('item');
    $('ul li.' + dataitem).addClass('active');
    e.preventDefault();
});