2012-06-14 5 views
54

クリックイベントが発生したときにクラスを取得する方法はあります。以下のように私のコードは、それだけではなく、idのクラスが動作します。JQueryを使用してイベントを発生させた要素のクラスを取得する

HTML:

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

はJQuery:

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

jsfiddleコードhere

+11

クラスはECMAScriptで予約されているので、class属性は 'className' DOMプロパティにマップされます。 'event.target.className'を使用してください。 – RobG

答えて

103

試してみてください。

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

これは完全なクラス(MULTかもしれ含まれています要素に複数のクラスがある場合は、スペースで区切られた複数のクラス)。あなたのコードでは、「konbo」または「kinta」のいずれかが含まれます:

event.target.className 
名前でクラスをチェックするためにjQueryを使用することができます

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

addClassremoveClassでそれらを追加または削除します。

+5

+1の '.className'です。 –

1

あなたはjQueryの1.7を使用している場合:

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

かは:

alert($(event.target).prop("class")); 
1
<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> 

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

これは私のために動作します。 jQueryにはevent.target.class関数はありません。

+0

何らかの理由で私はイベントを使用しなければならない、とにかく答えに感謝する。豚は私が必要とするものに答えました。 – Redbox

0

注意して、すべてのブラウザで動作しないかもしれませんが、Chromeでうまく動作しますが、Firefox(またはIE/Edge、覚えていないこと)はsrcElementとは少し異なります。私は通常ので、素敵な答えをThxを

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

につながる

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

ような何かを!

関連する問題