ti-enxame.com

Obter o tipo de elemento com jQuery

É possível, usando o jQuery, descobrir o tipo de um elemento com jQuery? Por exemplo, o elemento é div, span, select ou input?

Por exemplo, se eu estou tentando carregar valores em uma lista suspensa com jQuery, mas o mesmo script pode gerar código em um conjunto de botões de opção, eu poderia criar algo como:

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

Dada uma lista suspensa com um botão ao lado dela com a classe trigger, minha variável elementType deve retornar select no botão que está sendo pressionado.

288
Jamie Hartnoll

Obtendo o elemento, digite o caminho jQuery:

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

fazendo o mesmo sem jQuery

var elementType = this.previousSibling.nodeName;

Verificando o tipo de elemento específico:

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

você também pode usar:

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

você deve usar a propriedade tagName e attr('type') para entradas

26
Distdev

Como Distdev aludiu, você ainda precisa diferenciar o tipo de entrada. Isto é,

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

lhe dirá input, mas isso não diferencia entre checkbox/text/radio. Se é uma entrada, você pode então usar

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

para dizer-lhe checkbox/text/radio, então você sabe que tipo de controle é.

15
James Toomey

você pode usar .is():

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

veja fonte

7
Mohammed Sufian

use get (0) .tagName. Veja este link

3
Amar

Use Nodename sobre tagName:

nodeName contém todas as funcionalidades do tagName, além de mais algumas. Portanto, nodeName é sempre a melhor opção.

veja DOM Core

2
Mike Rifgin