jQuery:获取选定的元素标签名称

有一个简单的方法来获取标签名称?

例如,如果给$('a')赋予一个函数,我想得到'a'

你可以调用.prop("tagName") 。 例子:

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

如果写出.prop("tagName")非常乏味,可以创build一个自定义函数,如下所示:

 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") 

请参阅http://api.jquery.com/prop/

jQuery 1.6+

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

较旧的版本

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

toLowerCase()不是强制性的。

这又是另一种方式:

 $('selector')[0].tagName 

你不应该使用jQuery('selector').attr("tagName").toLowerCase() ,因为它只适用于老版本的Jquery。

可以使用$('selector').prop("tagName").toLowerCase()如果你确定你使用的版本是1.6以上版本的jQuery。


注意 :

你可能认为现在(2016年1月)所有人都在使用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()