是否有一种简单的方法来获取标记名称?
例如,如果给我$('a')到一个函数中,我希望得到'a'。
是否有一种简单的方法来获取标记名称?
例如,如果给我$('a')到一个函数中,我希望得到'a'。
当前回答
jQuery 1.6 +
jQuery('selector').prop("tagName").toLowerCase()
旧版本
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase()不是强制性的。
其他回答
jQuery 1.6 +
jQuery('selector').prop("tagName").toLowerCase()
旧版本
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase()不是强制性的。
你不应该使用jQuery('selector').attr("tagName"). tolowercase(),因为它只适用于旧版本的jQuery。
你可以使用$('selector').prop("tagName"). tolowercase()如果你确定你使用的是>= version 1.6的jQuery版本。
注意:
你可能认为现在(2016年1月)每个人都在使用jQuery 1.10+或其他东西,但不幸的是,事实并非如此。例如,今天许多人仍在使用Drupal 7,到目前为止Drupal 7的每个官方版本都默认包含jQuery 1.4.4。
所以,如果你不确定你的项目是否会使用jQuery 1.6+,考虑使用一个适用于所有版本的jQuery的选项:
方案一:
jQuery('selector')[0].tagName.toLowerCase()
选项2
jQuery('selector')[0].nodeName.toLowerCase()
你可以使用DOM的nodeName属性:
$(...)[0].nodeName
这是另一种方式:
$('selector')[0].tagName
你可以调用.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"
注意,按照约定,标签名是大写返回的。如果你想要返回的标签名称都是小写的,你可以这样编辑自定义函数:
jQuery.fn.tagNameLowerCase = function() {
return this.prop("tagName").toLowerCase();
};
例子:
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"