是否有一種簡單的方法來獲取標籤名稱? node
例如,若是給我$('a')
一個函數,我想獲得'a'
。 jquery
你不應該使用jQuery('selector').attr("tagName").toLowerCase()
由於它只能在舊版本的jQuery工做。 api
若是肯定使用的是jQuery thats> = version 1.6,則能夠使用$('selector').prop("tagName").toLowerCase()
。 函數
您可能會認爲,到目前爲止(2016年1月),每一個人都在使用jQuery 1.10+,但不幸的是事實並不是如此。 例如,當今許多人仍在使用Drupal 7,而且迄今爲止,到目前爲止,Drupal 7的每一個正式發行版都默認包含jQuery 1.4.4。 this
所以,若是不肯定您的項目是否將使用jQuery 1.6+,請考慮使用適用於全部jQuery版本的選項之一: spa
選項1 : code
jQuery('selector')[0].tagName.toLowerCase()
選項2 get
jQuery('selector')[0].nodeName.toLowerCase()
您能夠調用.prop("tagName")
。 例子: io
jQuery("<a>").prop("tagName"); //==> "A" jQuery("<h1>").prop("tagName"); //==> "H1" jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
若是寫出.prop("tagName")
很繁瑣,則能夠這樣建立一個自定義函數: function
jQuery.fn.tagName = function() { return this.prop("tagName"); };
例子:
jQuery("<a>").tagName(); //==> "A" jQuery("<h1>").tagName(); //==> "H1" jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"
請注意,按照慣例,標籤名稱返回CAPITALIZED 。 若是但願返回的標籤名稱所有爲小寫字母,則能夠編輯自定義函數,以下所示:
jQuery.fn.tagNameLowerCase = function() { return this.prop("tagName").toLowerCase(); };
例子:
jQuery("<a>").tagNameLowerCase(); //==> "a" jQuery("<h1>").tagNameLowerCase(); //==> "h1" jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
您可使用DOM的nodeName
屬性 :
$(...)[0].nodeName
從jQuery 1.6開始,您如今應該調用prop:
$target.prop("tagName")
jQuery 1.6以上
jQuery('selector').prop("tagName").toLowerCase()
舊版本
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase()不是必需的。