获取使用JQuery触发事件的元素的类

时间:2012-06-14 02:56:14

标签: javascript javascript-events jquery

无论如何都会在点击事件被触发时获取该类。我的代码如下,它只适用于id但不适用于类。

$(document).ready(function() {
  $("a").click(function(event) {
    alert(event.target.id + " and " + event.target.class);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>

<body>
  <a href="#" id="kana1" class="konbo">click me 1</a>
  <a href="#" id="kana2" class="kinta">click me 2</a>
</body>

</html>

jsfiddle code here

6 个答案:

答案 0 :(得分:120)

尝试:

$(document).ready(function() {
    $("a").click(function(event) {
       alert(event.target.id+" and "+$(event.target).attr('class'));
    });
});

答案 1 :(得分:93)

这将包含完整的类(如果元素有多个类,则可以是多个空格分隔的类)。在您的代码中,它将包含“konbo”或“kinta”:

event.target.className

您可以使用jQuery按名称检查类:

$(event.target).hasClass('konbo');

并使用addClassremoveClass添加或删除它们。

答案 2 :(得分:3)

您将在数组下面获得所有的类

event.target.classList

答案 3 :(得分:2)

$(document).ready(function() {
  $("a").click(function(event) {
    var myClass = $(this).attr("class");
    var myId = $(this).attr('id');
    alert(myClass + " " + myId);
  });
})
<html>

<head>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
</head>

<body>
  <a href="#" id="kana1" class="konbo">click me 1</a>
  <a href="#" id="kana2" class="kinta">click me 2</a>
</body>

</html>

这对我有用。 jQuery中没有event.target.class函数。

答案 4 :(得分:1)

如果您使用的是jQuery 1.7:

alert($(this).prop("class"));

或:

alert($(event.target).prop("class"));

答案 5 :(得分:0)

小心target可能不适用于所有浏览器,但它适用于Chrome,但我认为Firefox(或IE / Edge,无法记住)有点不同并使用srcElement。我经常做像

这样的事情
var t = ev.srcElement || ev.target;

因此导致

$(document).ready(function() {
    $("a").click(function(ev) {
        // get target depending on what API's in use
        var t = ev.srcElement || ev.target;

        alert(t.id+" and "+$(t).attr('class'));
    });
});

谢谢你的答案!