2010-11-01 15 views
6

Se per amor di discussione sto applicando una classe a un <p> ed un <a> e poi voglio per determinare se si trattava di un <a> o un <p> che è stato fatto clic, è lì un modo per farlo?JS/jQuery - ottenere il tipo di elemento

Esempio di destinazione d'uso:

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

risposta

9

tenta di utilizzare qualcosa di simile:

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

Perché provare? Perché non usare solo? –

+1

Hai ragione, avrei dovuto dire 'uso' – ilkin

+6

Tim Down, non è un po 'eccessivamente pedante? – araisbec

3

Usa nodeName o tagName.

+0

Piuttosto che Mozilla doc, come 'su il W3C: http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-F68D095 e http: //www.w3. org/TR/DOM-Level-2-Core/core.html # ID-104682815 –

+2

@OP: Se ti stai chiedendo perché ce ne sono due, non ti preoccupare, per gli elementi (al contrario di attributi o nodi di testo), avranno lo stesso valore. Se stai usando solo elementi, 'tagName' sarà più familiare alle altre persone che leggono il tuo codice. –

+3

@TJCrowder Preferisco i documenti di Mozilla perché di solito hanno esempi, informazioni sulla compatibilità tra browser (se del caso) e collegamenti alle specifiche pertinenti. – robertc

2

uso tagName per ottenere il tag

3

$(this).is("a"), per esempio, sarà anche funzionare. Questo è utile se stai sfidando un selettore più complicato, non solo un particolare tipo di elemento.

Problemi correlati