Есть ли простой способ получить имя тега?
Например, если мне присваивается $('a')
в функцию, я хочу получить 'a'
.
Есть ли простой способ получить имя тега?
Например, если мне присваивается $('a')
в функцию, я хочу получить 'a'
.
Вы можете позвонить .prop("tagName")
. Примеры:
jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
Если запись .prop("tagName")
утомительна, вы можете создать пользовательскую функцию следующим образом:
jQuery.fn.tagName = function() {
return this.prop("tagName");
};
Примеры:
jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"
Обратите внимание, что имена тегов, по соглашению, возвращаются CAPITALIZED. Если вы хотите, чтобы возвращаемое имя тега было строчным, вы можете отредактировать пользовательскую функцию следующим образом:
jQuery.fn.tagNameLowerCase = function() {
return this.prop("tagName").toLowerCase();
};
Примеры:
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
Вы можете использовать свойство DOM nodeName
:
$(...)[0].nodeName
Как и в jQuery 1.6, вы должны теперь вызвать prop:
$target.prop("tagName")
jQuery 1.6 +
jQuery('selector').prop("tagName").toLowerCase()
Старые версии
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase() не является обязательным.
Это еще один способ:
$('selector')[0].tagName
Вы должны НЕ использовать jQuery('selector').attr("tagName").toLowerCase()
, потому что он работает только в более ранних версиях JQuery.
Вы могли использовать $('selector').prop("tagName").toLowerCase()
, если вы уверены, что используете версию jQuery thats >= version 1.6.
Вы можете подумать, что EVERYONE использует jQuery 1.10+ или что-то уже (январь 2016 года), но, к сожалению, это не так. Например, многие люди сегодня используют Drupal 7, и каждая официальная версия Drupal 7 по сегодняшний день включает jQuery 1.4.4 по умолчанию.
Итак, если вы не знаете наверняка, будет ли ваш проект использовать jQuery 1.6+, рассмотрите возможность использования одного из параметров, которые работают для ВСЕХ версий jQuery:
Вариант 1:
jQuery('selector')[0].tagName.toLowerCase()
Вариант 2
jQuery('selector')[0].nodeName.toLowerCase()