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

时间:2011-03-18 02:20:23

标签: javascript jquery jquery-selectors

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

例如,如果我将$('a')授予某个函数,我想获得'a'

7 个答案:

答案 0 :(得分:965)

您可以致电.prop("tagName")。例子:

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


如果写出.prop("tagName")是单调乏味的,您可以创建一个自定义函数,如下所示:

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"

答案 1 :(得分:94)

您可以使用DOM的nodeName property

$(...)[0].nodeName

答案 2 :(得分:56)

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

$target.prop("tagName")

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

答案 3 :(得分:44)

jQuery 1.6 +

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

旧版本

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

toLowerCase()不是强制性的。

答案 4 :(得分:22)

这是另一种方式:

$('selector')[0].tagName

答案 5 :(得分:10)

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

如果您确定使用的是&gt; =版本1.6的jQuery版本,可以使用$('selector').prop("tagName").toLowerCase()

注意:

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

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

选项1:

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

选项2

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

答案 6 :(得分:0)

nodeName将给您标签名称大写,而localName将给您小写。

$("yourelement")[0].localName 

将为您提供:yourelement而不是YOURELEMENT