Javascript 如何从具有相同类(类是变量)的另一个列表中引用列表中的元素?

Javascript 如何从具有相同类(类是变量)的另一个列表中引用列表中的元素?,javascript,jquery,Javascript,Jquery,我在一个网站上有两个列表。每个元素在另一个列表中都有一个对应的类。单击dl中的一个元素,ul元素将添加新类。我以为这样做就行了,但显然不行: $('dl dt').click(function () { var classname = $(this).attr('class'); $('dl dt[class~=classname]').click(function() { $("ul li").removeClass('active'); $('

我在一个网站上有两个列表。每个元素在另一个列表中都有一个对应的类。单击dl中的一个元素,ul元素将添加新类。我以为这样做就行了,但显然不行:

$('dl dt').click(function () {
    var classname = $(this).attr('class');
    $('dl dt[class~=classname]').click(function() {
        $("ul li").removeClass('active');
        $('ul li[class~=classname]').addClass('active');
    });
})

我觉得自己很笨,因为这似乎非常容易完成,但我不能完全理解。如果我在网站的其他地方遗漏了一个明显的答案,请原谅我;我查找了一会儿,什么也找不到。

您需要修改选择器:

$('dl dt[class~="'+classname+'"]').click(function() {
    $("ul li").removeClass('active');
    $('ul li[class~="'+classname+'"]').addClass('active');
});

就像adeneo说的,如果你有多个类,这将返回所有类

$(this).attr('class')
将返回所有元素类,如果有多个?您并没有将变量集中到选择器中,而是在寻找具有实际类名“classname”的元素!你能展示你的(相关的)HTML吗?啊。我知道我错过了一些愚蠢的事情。谢谢谢谢阿德内奥。