znalezienie typu elementu za pomocą jQuery

345

Jeśli w jQuery mam odwołanie do elementu, jak mogę określić, jaki to element, na przykład dane wejściowe lub rozwijane? Czy jest jakiś sposób, aby się dowiedzieć?

Duplikować:

Jak mogę określić typ elementu dopasowanego elementu w jQuery?

jyotishka bora
źródło
5
Duplikat: stackoverflow.com/questions/341900/…
Ólafur Waage
10
Może być duplikatem, ale ma lepszą odpowiedź, a druga jest źle oznaczona.
Rumpleteaser,
2
@Rumpleteaser Jeśli „ten drugi” jest źle oznaczony, to dlaczego nie użyć editprzycisku pod nim i idealnie go oznaczyć?
trejder

Odpowiedzi:

615

Jeśli element jest wejściem, zwróci wartość true:

$("#elementId").is("input") 

lub możesz użyć następujących, aby uzyskać nazwę tagu:

$("#elementId").get(0).tagName
Marius
źródło
59
Gdy używasz $ ("# elementId"). Get (0) .tagName tagName będzie zawierał wszystkie wielkie litery - TR, DIV itp.
Jarede
7
Ok, więc własność tagName zwraca wartość wszystkich czapki, po prostu zrobił .toLowerCase()na nim
pythonian29033
9
var elementType = $(this).prop('tagName');
Damodar Bashyal
5
Używanie nodeNamemoże być bardziej spójne w różnych przeglądarkach: stackoverflow.com/questions/4878484/…
Nathan Jones,
2
Zauważ, że użycie $("#elementId").is(":input")ogólnie powie ci, jeśli masz do czynienia z dowolnym rodzajem elementu formularza, bez sprawdzania jego określonego typu ( referencji ).
trejder 16.04.15
12

Możesz użyć .prop () z tagNamenazwą właściwości, którą chcesz uzyskać:

$("#elementId").prop('tagName'); 
Rozkład
źródło
4

Warto zauważyć, że druga odpowiedź @ Marius może być wykorzystana jako czyste rozwiązanie JavaScript.

document.getElementById('elementId').tagName
Matas Vaitkevicius
źródło