web-dev-qa-db-fra.com

Obtenir le type d'élément avec jQuery

Est-il possible, à l'aide de jQuery, de connaître le type d'un élément avec jQuery? Par exemple, l'élément est-il 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:

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

Dans une liste déroulante avec un bouton à côté duquel se trouve la classe trigger, ma variable elementType devrait renvoyer select lors de l'appui sur le bouton.

291
Jamie Hartnoll

Obtenir l'élément taper la manière 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
540
adeneo

aussi vous pouvez utiliser:

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

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

26
Distdev

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

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

vous dira input, mais cela ne fait pas la différence entre case à cocher/texte/radio. Si c'est une entrée, vous pouvez alors utiliser

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

pour vous dire checkbox/text/radio, afin que vous sachiez de quel type de contrôle il s’agit.

16
James Toomey

vous pouvez utiliser .is():

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

voir source

8
Mohammed Sufian

utilisez get (0) .tagName. Voir ce lien

3
Amar

Utilisez Nodename sur tagName:

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

voir DOM Core

2
Mike Rifgin