Есть ли простой способ получить имя тега?
Например, если мне дают $('a')
функцию, я хочу получить 'a'
.
javascript
jquery
jquery-selectors
конфигуратор
источник
источник
Ответы:
Вы можете позвонить
.prop("tagName")
. Примеры:Если писать
.prop("tagName")
утомительно, вы можете создать собственную функцию, например:Примеры:
Обратите внимание, что имена тегов по соглашению возвращаются в CAPITALIZED . Если вы хотите, чтобы возвращаемое имя тега было строчным, вы можете отредактировать пользовательскую функцию следующим образом:
Примеры:
источник
.prop
.toLowerCase()
илиtoUpperCase()
может быть полезно при сравненииprop('tagName')
результата с именем тега.if($("my_selector").prop("tagName").toLowerCase() == 'div')
илиif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
Вы можете использовать
nodeName
свойство DOM :источник
$(this).prop('tagname')
. this.nodeName часто более эффективен. +1Начиная с jQuery 1.6, теперь вы должны вызывать prop:
Смотрите http://api.jquery.com/prop/
источник
JQuery 1.6+
Старые версии
toLowerCase () не является обязательным.
источник
new String
?Это еще один способ:
источник
Вы должны НЕ использовать
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 :
Вариант 2
источник
nodeName даст вам имя тега в верхнем регистре, а localName даст вам строчный.
даст вам: вы вместо себя
источник