Getting the class of the element that fired an event using JQuery

后端 未结 6 1268
独厮守ぢ
独厮守ぢ 2021-01-30 08:04

is there anyway to get the class when click event is fired. My code as below, it only work for id but not class.

相关标签:
6条回答
  • 2021-01-30 08:29

    This will contain the full class (which may be multiple space separated classes, if the element has more than one class). In your code it will contain either "konbo" or "kinta":

    event.target.className
    

    You can use jQuery to check for classes by name:

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

    and to add or remove them with addClass and removeClass.

    0 讨论(0)
  • 2021-01-30 08:40

    If you are using jQuery 1.7:

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

    or:

    alert($(event.target).prop("class"));
    
    0 讨论(0)
  • 2021-01-30 08:45

    Careful as target might not work with all browsers, it works well with Chrome, but I reckon Firefox (or IE/Edge, can't remember) is a bit different and uses srcElement. I usually do something like

    var t = ev.srcElement || ev.target;
    

    thus leading to

    $(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'));
        });
    });
    

    Thx for the nice answers!

    0 讨论(0)
  • 2021-01-30 08:47

    Try:

    $(document).ready(function() {
        $("a").click(function(event) {
           alert(event.target.id+" and "+$(event.target).attr('class'));
        });
    });
    
    0 讨论(0)
  • 2021-01-30 08:47

    $(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>

    This works for me. There is no event.target.class function in jQuery.

    0 讨论(0)
  • 2021-01-30 08:55

    You will get all the class in below array

    event.target.classList
    
    0 讨论(0)
提交回复
热议问题