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

时间:2021-06-14 20:33:46

Is there an easy way to get a tag name?

有什么简单的方法可以得到标签名吗?

For example, if I am given $('a') into a function, I want to get 'a'.

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

6 个解决方案

#1


885  

You can call .prop("tagName"). Examples:

你可以叫.prop(“tagName”)。例子:

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


If writing out .prop("tagName") is tedious, you can create a custom function like so:

如果写出。prop(“tagName”)是冗长乏味的,那么可以创建这样的自定义函数:

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

Examples:

例子:

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


Note that tag names are, by convention, returned CAPITALIZED. If you want the returned tag name to be all lowercase, you can edit the custom function like so:

注意,标签名称是按惯例返回的。如果希望返回的标记名都是小写的,可以编辑自定义函数如下:

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

Examples:

例子:

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

#2


86  

You can use the DOM's nodeName property:

您可以使用DOM的nodeName属性:

$(...)[0].nodeName

#3


54  

As of jQuery 1.6 you should now call prop:

从jQuery 1.6开始,您现在应该调用prop:

$target.prop("tagName")

See http://api.jquery.com/prop/

参见http://api.jquery.com/prop/

#4


41  

jQuery 1.6+

jQuery 1.6 +

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

Older versions

旧版本

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

toLowerCase() is not mandatory.

toLowerCase()不是强制性的。

#5


20  

This is yet another way:

这是另一种方式:

$('selector')[0].tagName

#6


8  

You should NOT use jQuery('selector').attr("tagName").toLowerCase(), because it only works in older versions of Jquery.

您不应该使用jQuery('selector').attr("tagName"). tolowercase(),因为它只适用于旧版本的jQuery。

You could use $('selector').prop("tagName").toLowerCase() if you're certain that you're using a version of jQuery thats >= version 1.6.

如果您确定使用的是jQuery版本,那么可以使用$('selector').prop("tagName"). tolowercase()。


Note :

You may think that EVERYONE is using jQuery 1.10+ or something by now (January 2016), but unfortunately that isn't really the case. For example, many people today are still using Drupal 7, and every official release of Drupal 7 to this day includes jQuery 1.4.4 by default.

您可能认为现在每个人都在使用jQuery 1.10+或其他东西(2016年1月),但不幸的是事实并非如此。例如,现在很多人还在使用Drupal 7,到目前为止,Drupal 7的每个官方版本默认都包含jQuery 1.4.4。

So if do not know for certain if your project will be using jQuery 1.6+, consider using one of the options that work for ALL versions of jQuery :

因此,如果不确定您的项目是否将使用jQuery 1.6+,请考虑使用适用于所有jQuery版本的选项之一:

Option 1 :

选项1:

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

Option 2

选项2

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

#1


885  

You can call .prop("tagName"). Examples:

你可以叫.prop(“tagName”)。例子:

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


If writing out .prop("tagName") is tedious, you can create a custom function like so:

如果写出。prop(“tagName”)是冗长乏味的,那么可以创建这样的自定义函数:

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

Examples:

例子:

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


Note that tag names are, by convention, returned CAPITALIZED. If you want the returned tag name to be all lowercase, you can edit the custom function like so:

注意,标签名称是按惯例返回的。如果希望返回的标记名都是小写的,可以编辑自定义函数如下:

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

Examples:

例子:

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

#2


86  

You can use the DOM's nodeName property:

您可以使用DOM的nodeName属性:

$(...)[0].nodeName

#3


54  

As of jQuery 1.6 you should now call prop:

从jQuery 1.6开始,您现在应该调用prop:

$target.prop("tagName")

See http://api.jquery.com/prop/

参见http://api.jquery.com/prop/

#4


41  

jQuery 1.6+

jQuery 1.6 +

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

Older versions

旧版本

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

toLowerCase() is not mandatory.

toLowerCase()不是强制性的。

#5


20  

This is yet another way:

这是另一种方式:

$('selector')[0].tagName

#6


8  

You should NOT use jQuery('selector').attr("tagName").toLowerCase(), because it only works in older versions of Jquery.

您不应该使用jQuery('selector').attr("tagName"). tolowercase(),因为它只适用于旧版本的jQuery。

You could use $('selector').prop("tagName").toLowerCase() if you're certain that you're using a version of jQuery thats >= version 1.6.

如果您确定使用的是jQuery版本,那么可以使用$('selector').prop("tagName"). tolowercase()。


Note :

You may think that EVERYONE is using jQuery 1.10+ or something by now (January 2016), but unfortunately that isn't really the case. For example, many people today are still using Drupal 7, and every official release of Drupal 7 to this day includes jQuery 1.4.4 by default.

您可能认为现在每个人都在使用jQuery 1.10+或其他东西(2016年1月),但不幸的是事实并非如此。例如,现在很多人还在使用Drupal 7,到目前为止,Drupal 7的每个官方版本默认都包含jQuery 1.4.4。

So if do not know for certain if your project will be using jQuery 1.6+, consider using one of the options that work for ALL versions of jQuery :

因此,如果不确定您的项目是否将使用jQuery 1.6+,请考虑使用适用于所有jQuery版本的选项之一:

Option 1 :

选项1:

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

Option 2

选项2

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