Получить тип элемента с помощью jQuery
возможно ли, используя jQuery, узнать тип элемента с помощью jQuery? Например, является ли элемент div, span, select или input?
например, если я пытаюсь загрузить значения в раскрывающийся список с помощью jQuery, но тот же скрипт может генерировать код в набор переключателей, могу ли я создать что-то вроде:
$('.trigger').live('click', function () {
var elementType = $(this).prev().attr(WHAT IS IT);
});
учитывая выпадающий список с кнопкой рядом с ним с триггер класс, мне elementType
переменная должна вернуться select
при нажатии кнопки.
7 ответов
получение типа элемента способом jQuery:
var elementType = $(this).prev().prop('nodeName');
делать то же самое без jQuery
var elementType = this.previousSibling.nodeName;
проверка конкретного типа элемента:
var is_element_input = $(this).prev().is("input"); //true or false
как упоминал Distdev, вам все равно нужно дифференцировать тип ввода. То есть,
$(this).prev().prop('tagName');
скажу вам input
, но это не отличает флажок/текст/радио. Если это вход, вы можете использовать
$('#elementId').attr('type');
чтобы сказать вам флажок / текст / радио, чтобы вы знали, какой это контроль.
можно использовать .is()
:
$( "ul" ).click(function( event ) {
var target = $( event.target );
if ( target.is( "li" ) ) {
target.css( "background-color", "red" );
}
});
посмотреть источник
используйте Nodename над tagName:
nodeName содержит все функциональные возможности tagName, а также еще несколько. Поэтому nodeName всегда является лучшим выбором.
посмотреть DOM Core