Récupère le type d’élément avec jQuery

Est-il possible, en utilisant jQuery, de trouver le type d’un élément avec jQuery? Par exemple, l’élément est-il un div, span, select ou input?

Par exemple, si j’essaie de charger des valeurs dans une liste déroulante avec jQuery, mais que le même script peut générer du code dans un ensemble de boutons radio, pourrais-je créer quelque chose comme:

$('.sortinggger').live('click', function () { var elementType = $(this).prev().attr(WHAT IS IT); }); 

Étant donné une liste déroulante avec un bouton à côté de lui avec la classe sortinggger , ma variable elementType devrait retourner select lorsque le bouton est pressé.

Obtenir l’élément tapez la méthode jQuery:

 var elementType = $(this).prev().prop('nodeName'); 

faire la même chose sans jQuery

 var elementType = this.previousSibling.nodeName; 

Vérification du type d’élément spécifique:

 var is_element_input = $(this).prev().is("input"); //true or false 

aussi vous pouvez utiliser:

 $("#elementId").get(0).tagName 

vous devez utiliser la propriété tagName et attr('type') pour les entrées

Comme Distdev l’a mentionné, vous devez encore différencier le type d’entrée. C’est-à-dire,

 $(this).prev().prop('tagName'); 

va vous dire input , mais cela ne différencie pas la case à cocher / texte / radio. Si c’est une entrée, vous pouvez alors utiliser

 $('#elementId').attr('type'); 

pour vous dire case à cocher / texte / radio, de sorte que vous sachiez quel type de contrôle il est.

vous pouvez utiliser .is() :

  $( "ul" ).click(function( event ) { var target = $( event.target ); if ( target.is( "li" ) ) { target.css( "background-color", "red" ); } }); 

voir la source

utilisez get (0) .tagName. Voir ce lien

Utilisez Nodename sur tagName:

nodeName contient toutes les fonctionnalités de tagName, plus quelques autres. Par conséquent, nodeName est toujours le meilleur choix.

voir le kernel DOM