检查在jquery中单击了哪个类

时间:2017-01-18 16:26:33

标签: javascript jquery

假设我有一个锚标记,每个标记中有两个不同的类

<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");
        }
    });
});

2 个答案:

答案 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'))