jQuery: получить имя тега выбранного элемента - PullRequest
600 голосов
/ 18 марта 2011

Есть ли простой способ получить имя тега?

Например, если мне дано $('a') в функцию, я хочу получить 'a'.

Ответы [ 6 ]

970 голосов
/ 18 марта 2011

Вы можете позвонить .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"
94 голосов
/ 18 марта 2011

Вы можете использовать свойство DOM nodeName :

$(...)[0].nodeName
57 голосов
/ 02 декабря 2011

Начиная с jQuery 1.6, теперь вы должны вызывать prop:

$target.prop("tagName")

См. http://api.jquery.com/prop/

44 голосов
/ 19 января 2012

jQuery 1.6 +

jQuery('selector').prop("tagName").toLowerCase()

Старые версии

jQuery('selector').attr("tagName").toLowerCase()

toLowerCase () не является обязательным.

22 голосов
/ 02 марта 2012

Это еще один способ:

$('selector')[0].tagName
10 голосов
/ 21 января 2016

Вы должны НЕ использовать jQuery('selector').attr("tagName").toLowerCase(), потому что он работает только в более старых версиях Jquery.

Вы можете использовать $('selector').prop("tagName").toLowerCase(), если вы уверенычто вы используете версию jQuery, которая> = версия 1.6.


Примечание:

Вы можете подумать, что КАЖДЫЙ использует jQuery 1.10+ или что-то еще (январь 2016 г.), но, к сожалению, это не совсем так.Например, многие люди сегодня все еще используют Drupal 7, и каждый официальный выпуск Drupal 7 по сей день включает в себя jQuery 1.4.4 по умолчанию.

Так что если вы не знаете наверняка, будет ли ваш проект использовать jQuery1.6+, рассмотрите возможность использования одного из вариантов, которые работают для ВСЕХ версий jQuery:

Опция 1:

jQuery('selector')[0].tagName.toLowerCase()

Опция 2

jQuery('selector')[0].nodeName.toLowerCase()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...