jQuery: Seçili öğe etiketi adını al


Yanıtlar:


1032

Arayabilirsiniz .prop("tagName"). Örnekler:

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


Dışarı yazma Eğer .prop("tagName")sıkıcı, bunu böyle özel bir işlev oluşturabilirsiniz:

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

Örnekler:

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


Etiket adlarının kural gereği CAPITALIZED olarak döndürüldüğünü unutmayın . Döndürülen etiket adının tamamen küçük harf olmasını istiyorsanız, özel işlevi şu şekilde düzenleyebilirsiniz:

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

Örnekler:

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

18
JQuery 1.6 olarak, bu olmalıdır .prop.
— Rocket Hazmat

3
Büyük harf kullanım sözleşmesi tüm tarayıcılar tarafından takip ediliyor mu? Değilse, jQuery bunu normalleştirir mi?
— callum

8
tagName, DOM spesifikasyonunun bir parçasıdır ve her zaman büyük harfle yazılır.
— tilleryj

Döndürülen dizenin SERMAYE MEKTUPLARINDA olduğunu unutmayın. Örneğin, "div" veya "a" ile karşılaştırmaya çalışıyorsanız bu bir sorun olur.
— Hartley Brody

3
sonucu bir etiket adıyla karşılaştırırken toLowerCase()veya işlevini kullanmak toUpperCase()yararlı olabilir prop('tagName'). if($("my_selector").prop("tagName").toLowerCase() == 'div')veyaif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
— S.Thiongane

99

DOM'un nodeNameözelliğini kullanabilirsiniz :

$(...)[0].nodeName

Teşekkürler. Harika çalışıyor - şu anda bir jQuery dünyasında olduğum için daha jQueryish sürümünü kullanacağım.
— yapılandırıcı

6
saf JS çözümleri (bunun gibi), özellikle tarayıcı uyumluluk sorunlarından muzdarip değilse veya çok daha ayrıntılıysa, jQuery çözümlerinden genellikle daha üstündür.
— Steven Lu

25
... ve özellikle bu tarayıcı uyumsuzluk sorunları nedeniyle, bir kullanıcı bir çözüm seçiyorsa ve hangi tarayıcı uyumsuzluklarına dikkat etmesi gerektiği konusunda bilgili değilse, jQuery sorunları genellikle üstündür. ;)
— Scott Stafford

4
JQuery sürümünün ne olduğu önemli değil, çünkü bu çözüm tüm sürümlerde çalışıyor çünkü bu üstün düşünün. +1
— Stijn de Witt

7
özellikle de, zaten var olan bir özelliği almak için öğeyi bir jquery nesnesine geri döndürmeniz gereken her () benzeri bir durumdaysanız $(this).prop('tagname'). this.nodeName genellikle daha verimlidir. +1
— commonpike


46

jQuery 1.6+

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

eski versiyonlar

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

toLowerCase () zorunlu değildir.


Neden yapıyorsun new String?
— Rocket Hazmat

ToLowerCase () String bir yöntemdir çünkü
— Dayron Gallardo

23

Bu başka bir yol:

$('selector')[0].tagName

Güzel bir! NodeName'den daha net ve hatta daha kısa. : P
— Dennis98

11

Sen olmalıdır DEĞİL kullanmak jQuery('selector').attr("tagName").toLowerCase()sadece jQuery eski sürümlerinde çalıştığı için,.

Sen olabilir kullanmak $('selector').prop("tagName").toLowerCase()jQuery thats sürümünü kullandığınızı sen belli if> = sürüm 1.6.


Not :

HERKES'in şu ana kadar (Ocak 2016) jQuery 1.10+ veya daha fazlasını kullandığını düşünebilirsiniz, ancak maalesef durum bu değil. Örneğin, bugün birçok kişi hala Drupal 7 kullanıyor ve Drupal 7'nin bugüne kadarki her resmi sürümü varsayılan olarak jQuery 1.4.4'ü içeriyor.

Bu nedenle, projeniz jQuery 1.6+ kullanıp kullanmayacağından emin değilseniz, jQuery'nin TÜM sürümleri için çalışan seçeneklerden birini kullanmayı düşünün:

Seçenek 1 :

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

seçenek 2

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

0

nodeName size etiket adını büyük harf verirken, localName size küçük harf verir.

$("yourelement")[0].localName 

size verecek: SEÇİMİNİZ yerine öğeniz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.