Javascript jQuery:获取所选元素标记名

Javascript jQuery:获取所选元素标记名,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,有没有一种简单的方法来获取标签名 例如,如果给我一个函数$('a'),我想得到'a',你可以调用.prop(“标记名”)。示例: jQuery("<a>").prop("tagName"); //==> "A" jQuery("<h1>").prop("tagName"); //==> "H1" jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999" 示例: jQ

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

例如,如果给我一个函数
$('a')
,我想得到
'a'
,你可以调用
.prop(“标记名”)
。示例:

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

jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
示例:

jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
jQuery(“”.tagNameLowerCase();//=>“a”
jQuery(“”.tagNameLowerCase();//=>“h1”
jQuery(“”.tagNameLowerCase();//=>“cooltagname999”
您可以使用DOM的:


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

$target.prop("tagName")

请参见jQuery 1.6+

jQuery('selector').prop("tagName").toLowerCase()
旧版本

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

toLowerCase()
不是强制性的。

这是另一种方式:

$('selector')[0].tagName

您不应该使用
jQuery(“选择器”).attr(“标记名”).toLowerCase()
,因为它只适用于较旧版本的jQuery

如果确定使用的jQuery版本大于等于1.6版,则可以使用
$('selector').prop(“tagName”).toLowerCase()


注: 您可能认为现在(2016年1月)每个人都在使用jQuery 1.10+或其他东西,但不幸的是事实并非如此。例如,今天许多人仍在使用Drupal7,到目前为止,Drupal7的每个官方版本都默认包含jQuery1.4.4

因此,如果不确定您的项目是否使用jQuery 1.6,请考虑使用所有版本的jQuery:

的选项之一。 选项1:

jQuery('selector')[0].tagName.toLowerCase()
选项2

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

nodeName将为您提供大写的标记名,而localName将为您提供小写的标记名

$("yourelement")[0].localName 

将给您:yourelement而不是yourelement

谢谢。很好用-虽然我会使用更jQueryish的版本,因为我现在在jQuery的世界里。纯JS解决方案(像这一个)通常优于jQuery解决方案,特别是如果它们没有浏览器兼容性问题或者更详细的话。。。。特别是由于这些浏览器不兼容问题,如果有人正在选择解决方案,并且不太了解要注意哪些浏览器不兼容,jQuery通常会优于jQuery我认为这个优越性是因为jQuery版本是什么,这个解决方案对所有版本都有效。1特别是在类似each()的情况下,您必须将元素强制转换回jquery对象,以获取已经存在的属性,如
$(this).prop('tagname')
。这个.nodeName通常效率更高+1从jQuery 1.6开始,这可能是重复的,应该是
.prop
。所有浏览器都遵循大写惯例吗?如果不是,jQuery是否规范化此标记名?标记名是DOM规范的一部分,并且总是大写。请注意,返回的字符串是大写的。例如,如果您试图将其与“div”或“a”进行比较,这将是一个难题。在将
prop('tagName')
结果与标记名进行比较时,使用
toLowerCase()
toUpperCase()
可能会有所帮助
if($(“我的选择器”).prop(“标记名”).toLowerCase()='div')
if($(“我的选择器”).prop(“标记名”).toUpperCase()='div')
为什么要做
新字符串
?因为toLowerCase()是StringNice的一种方法!比nodeName更清晰,甚至更短:P