Получить тип элемента с помощью jQuery

Возможно ли, используя jQuery, узнать тип элемента с jQuery? Например, является ли элемент div, span, select или input?

Например, если я пытаюсь загрузить значения в раскрывающийся список с помощью jQuery, но тот же script может сгенерировать код в набор переключателей, могу ли я создать что-то вроде:

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

В раскрывающемся списке с кнопкой рядом с классом триггером моя переменная elementType должна вернуть select при нажатии кнопки.

Ответ 1

Получение типа элемента способом jQuery:

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

делает то же самое без jQuery

var elementType = this.previousSibling.nodeName;

Проверка определенного типа элемента:

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

Ответ 2

также вы можете использовать:

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

Ответ 3

вы должны использовать свойство tagName и attr('type') для входов

Ответ 4

Как указано в Distdev, вам все равно нужно различать тип ввода. То есть

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

сообщит вам input, но это не отличает флажок/текст/радио. Если это вход, вы можете использовать

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

чтобы сообщить вам флажок/текст/радио, чтобы вы знали, что это за контроль.

Ответ 5

вы можете использовать .is():

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

см. источник

Ответ 7

Использовать Nodename над tagName:

nodeName содержит все функции tagName, плюс еще несколько. Поэтому nodeName всегда лучший выбор.

см. DOM Core