$('this')[0].nodeName和$('this')[0].tagName有什么区别?
发布于 2011-02-02 19:34:30
发布于 2011-02-02 18:49:11
这很好地解释了两者之间的区别。
增加本条案文:
tagName和nodeName都是检查html元素名称的有用的Javascript属性。在大多数情况下,这两种方法都很好,但如果您只支持A级浏览器,则最好使用nodeName,如果您也打算支持IE5.5,则更倾向于使用tagName。tagName有两个问题:
!。undefined,而nodeName返回#textnodeName有自己的一组问题,但它们不太严重:
!。这比所有版本的IE都遭受这种行为的tagName危害小。document元素或属性。这两种情况都不应在大多数实际目的中引起关注,但无论如何都应牢记在心。因此,就大多数实际目的而言,由于nodeName支持更广泛的场景和潜在的更好的前向兼容性,所以坚持使用它。更别提它不会在注释节点上打嗝,因为注释节点可能会不知不觉地进入代码中。不要担心IE5.5或Konqueror,因为他们的市场份额接近0%。
发布于 2011-02-02 19:47:56
在DOM规范中了解这些属性。
nodeName是在节点接口中定义的属性。
http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-F68D095
tagName是在元素接口中定义的属性。
http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-104682815
顺便说一下,节点接口是由DOM树中的每个节点(包括document对象本身)实现的。元素接口仅由DOM树中表示HTML中的元素的节点(具有nodeType === 1的节点)实现。
https://stackoverflow.com/questions/4878484
复制相似问题