复杂的jquery类选择

时间:2018-03-15 13:11:32

标签: javascript jquery arrays

我有这种情况:

element 1 [classList] = ['one', 'two']
element 2 [classList] = ['one', 'two', 'three']

当我使用此函数单击其中一个(任意)元素时,我想从这两个元素中删除类two

var target_element_class = e.target.className;
$('.'+target_element_class.replace(' ','.')).each(function(i, obj){
                $(this).removeClass('two');
            }) 

现在,当我点击元素1时,这可以正常工作,因为查询选择器会搜索元素2中的.one.two

但是,当我点击元素2时,它会搜索.one.two.three,因此不会选择元素1.

我希望能够选择元素1。有可能吗?更重要的是,这种情况有效吗?

编辑我有一个解析html文档的脚本。它可以是任何,所以我没有事先知道元素的类。我单击一个元素,它会选择doc中具有类似类的所有其他元素,并为其添加类two。然后我应该能够点击任何这些选定的元素,这样我就可以从所有其他元素中删除类two

1 个答案:

答案 0 :(得分:0)

您可以对点击的元素two上的每个类进行迭代,并从中删除类two,如下所示:

var target_element_classes = e.target.classList;// array of all classes on clicked element
target_element_classes.forEach(function(c){
    if(c !== 'two'){
        $('.'+c).removeClass('two');
    } 
})