trouver le type d'un élément à l'aide de jQuery

345

Dans jQuery, si j'ai une référence à un élément, comment puis-je déterminer de quel type d'élément il s'agit, par exemple, une entrée ou une liste déroulante? Existe-t-il un moyen de le savoir?

Dupliquer:

Comment puis-je déterminer le type d'élément d'un élément correspondant dans jQuery?

jyotishka bora
la source
5
Duplicate: stackoverflow.com/questions/341900/…
Ólafur Waage
10
Peut être un doublon, mais il a une meilleure réponse, et l'autre est mal étiqueté.
Rumpleteaser
2
@Rumpleteaser Si "l'autre" est mal marqué, alors pourquoi ne pas utiliser le editbouton en dessous et le marquer parfaitement?
trejder

Réponses:

615

Ce qui suit retournera vrai si l'élément est une entrée:

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

ou vous pouvez utiliser ce qui suit pour obtenir le nom de la balise:

$("#elementId").get(0).tagName
Marius
la source
59
Lors de l'utilisation de $ ("# elementId"). Get (0) .tagName le tagName sera en majuscules - TR, DIV etc etc
Jarede
7
ok, donc la propriété tagName renvoie une valeur tout en majuscules, je viens de faire un .toLowerCase()dessus
pythonian29033
9
var elementType = $(this).prop('tagName');
Damodar Bashyal
5
L'utilisation nodeNamepourrait être plus cohérente sur différents navigateurs: stackoverflow.com/questions/4878484/…
Nathan Jones
2
Notez que l'utilisation $("#elementId").is(":input")vous indiquera généralement, si vous avez affaire à n'importe quel type d'élément de formulaire, sans vérifier son type spécifique ( référence ).
trejder
12

Vous pouvez utiliser .prop () avec tagNamecomme nom de la propriété que vous souhaitez obtenir:

$("#elementId").prop('tagName'); 
Résolution
la source
4

Il convient de noter que la deuxième réponse de @ Marius pourrait être utilisée comme solution Javascript pure.

document.getElementById('elementId').tagName
Matas Vaitkevicius
la source