2010-02-25 14 views
7

Mögliche Duplizieren:
Can jQuery provide the tag name?

Hallo!

Diese Frage ist so einfach, ich schäme mich zu fragen, aber ich habe versucht, die Antwort für 30 Minuten ohne Ergebnis zu finden.

Wie finde ich heraus, welche Art von Element im folgenden Code angeklickt wurde.

$('*').click(function (event) { 
var this_element = $(this).???; 
return false; 
}) 

Was ich suche ist die this_element Variable auf 'a' haben, wenn es ein Link, 'p', wenn es sich um ein Absatz ist 'div' wenn ...

Dank!

+0

See: http://stackoverflow.com/questions/341900/how-can-i-determine-the-element-type-of-a-matched-element-in-jquery und http://stackoverflow.com/questions/1532331/can-jquery-provide-the-tag-name und http://stackoverflow.com/questions/1864151/how-to-know-the-type-of-an-jquery- Objekt ... – Shog9

+0

sollte übrigens 'event.stopPropagation();' enthalten, um zu verhindern, dass Ihr Klick ohne Angabe von Gründen an die übergeordneten Elemente übergeben wird. Siehe die API-Dokumentation: http://api.jquery.com/get/ – ghoppe

+0

@ghoppe - 'Rückgabe false;' in jQuery Ereignis behandelt '.stopPropagation()' und '.preventDefault()' – gnarf

Antwort

8

Dieses versuchen:

$('*').click(function (event) { 
    var this_element = this.tagName.toLowerCase(); 
    return false; 
}); 

this Der Zeiger auf das eigentliche Element verweist beaufschlagt wird. Als Teil des DOM Level 2-Kerns haben alle DOM-Elemente eine Eigenschaft namens .tagName.

+0

Achten Sie darauf, '.toLowerCase()' einige Browser implementieren alle Obergrenzen für '. TagName', während andere dies nicht tun. – gnarf

+0

Es hängt wirklich davon ab, was Sie mit dem Tag-Namen machen. Es ist vielleicht egal. Aber gut genug, ich werde die Änderung vornehmen. – Xavi

3
$(this).get(0).tagName; 
+0

um, -1 für was? es funktioniert: http://jsbin.com/akohe/edit – ghoppe

+4

donno, aber es ist etwas redundant - '$ (this) .get (0)' sollte immer "this" gleich sein. – Shog9

+1

gilt nur in diesem speziellen Fall (Klicken auf ein Element). $ (this) kann mehr als ein DOM-Element enthalten ... – ghoppe