Получить тип элемента с помощью 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" );
}
});
см. источник
Ответ 6
использовать get (0).tagName. См. ссылку
Ответ 7
Использовать Nodename над tagName:
nodeName содержит все функции tagName, плюс еще несколько. Поэтому nodeName всегда лучший выбор.
см. DOM Core