有没有简单的方法来获取标签名称?
例如,如果我将$('a')
授予某个函数,我想获得'a'
。
答案 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)
答案 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