con*_*tor 625 javascript jquery jquery-selectors
有没有简单的方法来获取标签名称?
例如,如果我被赋予$('a')
一个函数,我想得到'a'
.
til*_*ryj 1004
你可以打电话.prop("tagName")
.例子:
jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
Run Code Online (Sandbox Code Playgroud)
如果写出.prop("tagName")
是繁琐的,你可以创建一个自定义函数,如下所示:
jQuery.fn.tagName = function() {
return this.prop("tagName");
};
Run Code Online (Sandbox Code Playgroud)
例子:
jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"
Run Code Online (Sandbox Code Playgroud)
请注意,按照惯例,标签名称返回CAPITALIZED.如果希望返回的标记名全部为小写,则可以编辑自定义函数,如下所示:
jQuery.fn.tagNameLowerCase = function() {
return this.prop("tagName").toLowerCase();
};
Run Code Online (Sandbox Code Playgroud)
例子:
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 96
您可以使用DOM的nodeName
属性:
$(...)[0].nodeName
Run Code Online (Sandbox Code Playgroud)
Day*_*rdo 45
jQuery 1.6+
jQuery('selector').prop("tagName").toLowerCase()
Run Code Online (Sandbox Code Playgroud)
旧版本
jQuery('selector').attr("tagName").toLowerCase()
Run Code Online (Sandbox Code Playgroud)
toLowerCase()不是必需的.
Joh*_*ers 10
您应不使用jQuery('selector').attr("tagName").toLowerCase()
,因为它只能在旧版本的jQuery工作.
您可以使用$('selector').prop("tagName").toLowerCase()
,如果你确信你使用jQuery的版本,这就是> = 1.6的版本.
您可能认为现在每个人都在使用jQuery 1.10+或其他东西(2016年1月),但遗憾的是并非如此.例如,今天很多人仍在使用Drupal 7,到目前为止,Drupal 7的每个正式版本都默认包含jQuery 1.4.4.
因此,如果您不确定您的项目是否将使用jQuery 1.6+,请考虑使用适用于所有jQuery版本的选项之一:
选项1 :
jQuery('selector')[0].tagName.toLowerCase()
Run Code Online (Sandbox Code Playgroud)
选项2
jQuery('selector')[0].nodeName.toLowerCase()
Run Code Online (Sandbox Code Playgroud)