¿Hay alguna forma de obtener la clase cuando se activa el evento de clic? Mi código de la siguiente manera, solo funciona para id pero no para clase.
$(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>
código jsfiddle aquí
javascript
javascript-events
jquery
Redbox
fuente
fuente
className
propiedad DOM. Utiliceevent.target.className
.Respuestas:
Tratar:
$(document).ready(function() { $("a").click(function(event) { alert(event.target.id+" and "+$(event.target).attr('class')); }); });
fuente
Este contendrá la clase completa (que puede ser varias clases separadas por espacios, si el elemento tiene más de una clase). En su código contendrá "konbo" o "kinta":
Puede usar jQuery para buscar clases por nombre:
$(event.target).hasClass('konbo');
y para agregarlos o eliminarlos con addClass y removeClass .
fuente
Obtendrá toda la clase en la siguiente matriz
fuente
$(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>
Esto funciona para mi. No hay función event.target.class en jQuery.
fuente
Si está utilizando jQuery 1.7:
alert($(this).prop("class"));
o:
alert($(event.target).prop("class"));
fuente
Cuidado, ya que
target
podría no funcionar con todos los navegadores, funciona bien con Chrome, pero creo que Firefox (o IE / Edge, no puedo recordar) es un poco diferente y usa srcElement. Normalmente hago algo comovar t = ev.srcElement || ev.target;
lo que lleva a
$(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')); }); });
¡Gracias por las buenas respuestas!
fuente
target
funciona con Firefox, IE / Edge necesitaríasrcElement