我有这种情况:
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
。
答案 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');
}
})