簡體   English   中英

使用 JQuery 獲取觸發事件的元素的類

[英]Getting the class of the element that fired an event using JQuery

無論如何,當點擊事件被觸發時,是否可以獲得課程。 我的代碼如下,它只適用於 id 但不適用於 class。

 $(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代碼在這里

嘗試:

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

這將包含完整的類(如果元素有多個類,則可能是多個空格分隔的類)。 在您的代碼中,它將包含“konbo”或“kinta”:

event.target.className

您可以使用 jQuery 按名稱檢查類:

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

並使用addClassremoveClass添加或刪除它們。

您將獲得以下數組中的所有類

event.target.classList

 $(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 函數。

如果您使用的是 jQuery 1.7:

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

或者:

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

小心, 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'));
    });
});

謝謝你的好答案!

Vishesh 答案的改進,它返回一個布爾值:

event.target.classList.contains(className)
$(e.target).hasClass('active')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM