2010-11-01 19 views
6

Si por el bien del argumento que estoy aplicando un clase a un <p> y un <a> y luego Quiero determinar si era un <a> o una <p> que se hizo clic, ¿hay una forma de hacerlo?JS/jQuery - obtener el tipo de elemento

Ejemplo de uso previsto:

$(".selector").click(function(){ 
    element = $(this).whatElementWasClicked(); // return "a" or "p" 
} 

Respuesta

9

intenta utilizar algo así:

$(".selector").click(function(event){ 
    var element = event.target.nodeName } 
+2

¿Por qué intentarlo? ¿Por qué no solo usar? –

+1

Tienes razón, debería haber dicho 'usar' – ilkin

+6

Tim Down, ¿no es un poco excesivamente pedante? – araisbec

3

Uso nodeName o tagName.

+0

En lugar del documento de Mozilla, ¿qué tal el W3C: http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-F68D095 y http: //www.w3. org/TR/DOM-Level-2-Core/core.html # ID-104682815 –

+2

@OP: si se pregunta por qué hay dos, no se preocupe por los elementos (a diferencia de los atributos o los nodos de texto)), tendrán el mismo valor. Si solo está utilizando elementos, 'tagName' será más familiar para otras personas que leen su código. –

+3

@TJCrowder Prefiero los documentos de Mozilla porque generalmente tienen ejemplos, información de compatibilidad de navegador cruzada (cuando corresponda) _y_ enlaces a las especificaciones relevantes. – robertc

2

uso tagName para conseguir la etiqueta

3

$(this).is("a"), por ejemplo, también funcionará. Esto es útil si está consultando un selector más complicado, no solo un tipo de elemento en particular.

Cuestiones relacionadas