Чи є простий спосіб отримати ім’я тегу?
Наприклад, якщо мені надають $('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"
Зауважте, що імена тегів, як правило, повертаються КАПІТАЛІЗОВАНО . Якщо ви хочете, щоб ім'я, яке повертається, було великим регістром, ви можете відредагувати власну функцію так:
jQuery.fn.tagNameLowerCase = function() {
return this.prop("tagName").toLowerCase();
};
Приклади:
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
.prop
.
toLowerCase()
або toUpperCase()
може бути корисним при порівнянні prop('tagName')
результату з назвою тегу. if($("my_selector").prop("tagName").toLowerCase() == 'div')
абоif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
Ви можете використовувати nodeName
властивість DOM :
$(...)[0].nodeName
$(this).prop('tagname')
. this.nodeName часто є більш ефективним. +1
Станом на jQuery 1.6 тепер вам слід зателефонувати на підтримку:
$target.prop("tagName")
Дивіться http://api.jquery.com/prop/
jQuery 1.6+
jQuery('selector').prop("tagName").toLowerCase()
Старіші версії
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase () не є обов'язковим.
new String
?
НЕ слід використовувати jQuery('selector').attr("tagName").toLowerCase()
, тому що він працює лише в старих версіях Jquery.
Ви можете використовувати, $('selector').prop("tagName").toLowerCase()
якщо ви впевнені, що використовуєте версію jQuery thats> = версія 1.6.
Ви можете подумати, що до цього часу (січень 2016 року) КОЖНО використовує jQuery 1.10 або більше, але, на жаль, це насправді не так. Наприклад, багато людей сьогодні все ще використовують Drupal 7, і кожен офіційний випуск Drupal 7 до цього дня включає jQuery 1.4.4 за замовчуванням.
Тож якщо ви точно не знаєте, чи буде ваш проект використовувати jQuery 1.6+, скористайтеся одним із варіантів, які працюють для ВСІХ версій jQuery:
Варіант 1:
jQuery('selector')[0].tagName.toLowerCase()
Варіант 2
jQuery('selector')[0].nodeName.toLowerCase()