jQuery: получить выбранное имя тега элемента

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

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

6 ответов


можно назвать .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"


Обратите внимание, что имена тегов, по соглашению, возвращены оприходовано. Если вы хотите, чтобы возвращаемое имя тега было строчным, вы можете изменить пользовательскую функцию следующим образом:

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")

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


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, то >= версия 1.6.


Примечание :

вы можете подумать, что все используют 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()