jQuery:获取所选元素标签名称

IT技术 javascript jquery jquery-selectors
2021-01-14 16:50:07

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

例如,如果我被赋予$('a')一个函数,我想得到'a'.

6个回答

你可以打电话.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"
从 jQuery 1.6 开始,这应该是.prop.
2021-03-16 16:50:07
在将结果与标签名称进行比较时,使用toLowerCase()toUpperCase()可能会有所帮助prop('tagName')if($("my_selector").prop("tagName").toLowerCase() == 'div')或者if($("my_selector").prop("tagName").toUpperCase() == 'DIV')
2021-03-24 16:50:07
所有浏览器都遵循大小写约定吗?如果没有,jQuery 是否对此进行了规范化?
2021-03-27 16:50:07
tagName 是 DOM 规范的一部分,并且总是大写。
2021-03-30 16:50:07
请注意,返回的字符串是大写字母。例如,如果您尝试将其与“div”或“a”进行比较,这将是一个问题。
2021-03-30 16:50:07

您可以使用 DOM 的nodeName属性

$(...)[0].nodeName
谢谢。效果很好 - 虽然我会使用更多的 jQueryish 版本,因为我目前处于 jQuery 世界中。
2021-03-16 16:50:07
... 特别是由于那些浏览器不兼容问题,如果有人选择解决方案并且不熟悉需要注意的浏览器不兼容问题,那么 jQuery 的通常会更好。;)
2021-03-20 16:50:07
我认为这更好,因为 jQuery 版本无关紧要,这个解决方案适用于所有版本。+1
2021-03-24 16:50:07
纯 JS 解决方案(如这个)通常优于 jQuery 解决方案,尤其是当它们没有浏览器兼容性问题或更加冗长时。
2021-03-30 16:50:07
特别是如果您处于类似 each() 的情况下,您必须将元素转换回 jquery 对象以获取已经存在的属性,例如$(this).prop('tagname'). this.nodeName 通常更有效。+1
2021-04-08 16:50:07

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

$target.prop("tagName")

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

jQuery 1.6+

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

旧版本

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

toLowerCase() 不是强制性的。

你为什么要这样做new String
2021-03-23 16:50:07
因为 toLowerCase() 是 String 的方法
2021-04-12 16:50:07

这是另一种方式:

$('selector')[0].tagName
好东西!比 nodeName 更清晰,甚至更短。:P
2021-03-16 16:50:07