2017-09-18 125 views
0

我使用多个类作为这样一个选择:如何检查,通过它选择的jQuery选择了元素

jQuery(".class1 , class2 , .class3").function(){} 

现在我要检查通过类的元素已被选中。

类似于具有类“class1”的元素,将被选中,在这种情况下,所需的结果将是“class1”。我可以通过使用.hasClass()函数来实现,但我不想使用它。有没有其他方法可以做到这一点?

任何帮助,将不胜感激。 谢谢。

+0

您可以发布一个片段或你做什么的完整代码或你想干什么? –

+1

'e.target'?你试过 – guradio

+0

由于在底层可能使用了[querySelectorAll](https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll),如果不查询具体的班级,对我来说也不是有意义的,因为这是需要的。 – Boaz

回答

-2

没有别的办法,只需检查元素具有类:

if($(this).hasClass('class1')) { ... }; 
1

如果你想知道什么类触发的功能,请尝试以下操作:

我加入的原因下面的代码是,如果元素有多个类,那么我们只会得到包含类的那个。所以我们知道什么课引发了这个。

.split(/\s/).filter(function(cn) { 
    return cn.indexOf('class') === 0; 
}).join() 

jQuery(".class1 , .class2 , .class3").click(function(e) { 
 
    var c = $(e.target).attr("class").split(/\s/).filter(function(cn) { 
 
    return cn.indexOf('class') === 0; 
 
    }).join() 
 

 
    console.log(c) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="class1 t">class1</div><br> 
 
<div class="class2 e">class2</div><br> 
 
<div class="class3 l">class3</div><br>

+0

这只是一种模仿jQuery hasClass()方法的尝试。 – skobaljic

+1

他问是否有其他方式,但我尊重你的意见 –

+0

如果一个元素有2个类,该怎么办? – Pete

相关问题