在JS中获取元素标签名的最佳方法是什么?

31

我想获取某个标签的名称(以便告诉我它是div/input/span/p等)

我发现有3种不同的属性可以给我标记名称:

tagNamenodeNamelocalName

我的问题是:哪一个在所有浏览器中都得到了最广泛的支持?还是在原型中有一种获取标记名称的方法(我找过了但找不到)?


你应该忽略 localName,因为它现在已经过时了(来源)。 - thdoan
1
MDN文章中不再提到localName已被弃用。 - claviska
确认一下,那里没有提到弃用。只要你不使用IE8,就没问题了。 (https://caniuse.com/mdn-api_element_localname) - Slbox
1个回答

33

nodeName 在这里是最一致的。如果你想更加好奇地了解 tagName 的一些差异和不一致之处,我建议你花一分钟阅读这篇文章

对于问题中的原型部分...它是一个 JavaScript 属性,只需要使用 this.nodeName 或者当前函数中你的元素叫什么,就可以使用 element.nodeName


不错的文章链接,点赞:)。至于原型函数,我只是想知道是否有一种函数可以根据浏览器确定最佳使用的属性,例如使用 update() 而不是 .innerHTML - Mitch Dempsey
@Webdestroya - 由于这种方法在所有浏览器中都能够一致地工作,因此无需在库中添加任何开销,例如 jQuery 也没有针对此方法的任何方法 :) - Nick Craver
学习者:localName在IE中无法工作。对于TH元素,我尝试了alert(this.localName),在Firefox中得到了“th”,但在IE 7中得到了“undefined”。没有尝试过更新版本的IE。 - David Leppik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接