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.