假设我有一个锚标记,每个标记中有两个不同的类
<a class="class1 class2">Click me</a>
<a class="class1 class3">Click me</a>
我想知道如果我点击class1
锚点,它是class2
还是class3
我试过了,但它没有执行
$(document).ready(function()
{
$('.class1').click(function()
{
if($(this).has('class2'))
{
alert("class2 tag");
}
else
{
alert("class3 tag");
}
});
});
答案 0 :(得分:3)
您应该使用jquery的hasClass
方法,而不是has
:
$(document).ready(function() {
$('.class1').click(function() {
if ($(this).hasClass('class2')) {
alert("class2 tag");
} else {
alert("class3 tag");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="class1 class2">Click me</a>
<a class="class1 class3">Click me</a>
因为您只搜索className,hasClass
就足够了。
这里应该避免has
的原因是因为has
旨在减少一组匹配的元素。以下是jquery文档中的方法描述:
<强>。先后()强>
将匹配元素集减少到具有与选择器或DOM元素匹配的后代的元素。
答案 1 :(得分:1)
使用hasClass()
方法检查元素是否具有提供的类,或使用is()
方法根据提供的元素,jQuery对象或选择器检查元素。
if($(this).hasClass('class2'))
// or
if($(this).is('.class2'))