jQuery: Dapatkan nama tag elemen yang dipilih


Jawaban:


1032

Anda bisa menelepon .prop("tagName"). Contoh:

jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"


Jika menulis .prop("tagName")itu membosankan, Anda dapat membuat fungsi khusus seperti:

jQuery.fn.tagName = function() {
  return this.prop("tagName");
};

Contoh:

jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"


Perhatikan bahwa nama tag, secara konvensional, dikembalikan dengan huruf besar . Jika Anda ingin nama tag yang dikembalikan semuanya huruf kecil, Anda dapat mengedit fungsi khusus seperti:

jQuery.fn.tagNameLowerCase = function() {
  return this.prop("tagName").toLowerCase();
};

Contoh:

jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"

18
SEBAGAI jQuery 1.6, ini seharusnya .prop.
Rocket Hazmat

3
Apakah konvensi kapitalisasi diikuti oleh semua browser? Jika tidak, apakah jQuery menormalkan ini?
callum

8
tagName adalah bagian dari spesifikasi DOM dan selalu menggunakan huruf kapital.
tilleryj

Perhatikan bahwa string yang dikembalikan adalah dalam HURUF BESAR. Ini akan menjadi gotcha jika Anda mencoba membandingkannya dengan "div" atau "a" misalnya.
Hartley Brody

3
menggunakan toLowerCase()atau toUpperCase()mungkin membantu saat membandingkan prop('tagName')hasil dengan nama tag. if($("my_selector").prop("tagName").toLowerCase() == 'div')atauif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
S.Thiongane

99

Anda dapat menggunakan nodeNameproperti DOM :

$(...)[0].nodeName

Terima kasih. Berfungsi bagus - walaupun saya akan menggunakan versi jQueryish lebih banyak karena saya berada di dunia jQuery saat ini.
konfigurator

6
solusi JS murni (seperti ini) umumnya lebih unggul daripada yang jQuery terutama jika mereka tidak menderita masalah kompatibilitas browser atau jauh lebih bertele-tele.
Steven Lu

25
... dan khususnya karena masalah ketidakcocokan browser tersebut, masalah jQuery sering kali lebih unggul jika seseorang memilih solusi dan tidak berpengalaman dalam hal ketidaksesuaian browser yang harus diperhatikan. ;)
Scott Stafford

4
Saya menganggap superior ini karena tidak peduli apa versi jQuery, solusi ini berfungsi pada semua versi. +1
Stijn de Witt

7
khususnya jika Anda berada dalam situasi like () - like, di mana Anda harus melemparkan elemen kembali ke objek jquery untuk mendapatkan properti yang sudah ada di sana, seperti $(this).prop('tagname'). this.nodeName seringkali lebih efisien. +1
commonpike


46

jQuery 1.6+

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

Versi yang lebih lama

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

toLowerCase () tidak wajib.


Mengapa kau lakukan new String?
Rocket Hazmat

Karena toLowerCase () adalah metode String
Dayron Gallardo

23

Ini adalah cara lain:

$('selector')[0].tagName

Yang bagus! Lebih jelas dari nodeName dan bahkan lebih pendek. : P
Dennis98

11

Anda TIDAK boleh menggunakan jQuery('selector').attr("tagName").toLowerCase(), karena itu hanya bekerja di versi Jquery yang lebih lama.

Anda dapat menggunakan $('selector').prop("tagName").toLowerCase()jika Anda yakin bahwa Anda menggunakan versi jQuery itu> = versi 1.6.


Catatan :

Anda mungkin berpikir bahwa SEMUA ORANG menggunakan jQuery 1.10+ atau sesuatu sekarang (Januari 2016), tetapi sayangnya itu tidak benar-benar terjadi. Misalnya, banyak orang saat ini masih menggunakan Drupal 7, dan setiap rilis resmi Drupal 7 hingga hari ini termasuk jQuery 1.4.4 secara default.

Jadi, jika tidak tahu pasti apakah proyek Anda akan menggunakan jQuery 1.6+, pertimbangkan untuk menggunakan salah satu opsi yang berfungsi untuk SEMUA versi jQuery:

Pilihan 1 :

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

pilihan 2

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

0

nodeName akan memberi Anda nama tag dalam huruf besar, sedangkan localName akan memberi Anda huruf kecil.

$("yourelement")[0].localName 

akan memberi Anda: elemen Anda alih-alih YOURELEMENT

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.