[英]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');
並使用addClass和removeClass添加或刪除它們。
您將獲得以下數組中的所有類
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.