两者都是取得HTML元素的类型:
具体区别请看英文原文(本人翻译水平不好)。
tagName and nodeName are both useful Javascript properties for checking the name of an html element. For most purposes, either will do fine but nodeName is preferred if you are supporting only A-grade browsers and tagName is preferred if you intend to support IE5.5 as well.
There are two issues with tagName:
* In all versions of IE, tagName returns ! when called on a comment node
* For text nodes, tagName returns undefined where as nodeName returns #text
nodeName has it’s own set of issues but they are less severe:
* IE 5.5 returns ! when called on a comment node. This is less harmful than tagName which suffers from this behaviour across all versions of IE
* IE 5.5 doesn’t support nodeName for the document element or for attributes. Neither of these should be a concern for most practical purposes but should be kept in mind in any case
* Konqueror ignores comment nodes when using this property. But then again, Konqueror, along with IE 5.5 is not an A-grade browser
So for most practical purposes stick to nodeName due to its support for a wider range of scenarios and potentially better forward compatibility. Not to mention that it doesn’t hiccup on a comment node, which has a tendency to creep into code unannounced. Don’t worry about IE 5.5 or Konqueror as their market share is near 0%.
参考:
http://ghsky.com/2010/08/tagname-vs-nodename.html。
区别是tagName对于早期IE5.0浏览器支持比较好nodeName在这点上支持不是很好,但是现在大多数用户是IE6以上了,所以这点可以放弃兼容性,而使用nodeName。
分享到:
相关推荐
今天我们要深入探讨的是两个与元素节点相关的属性:`tagName`和`nodeName`。 `nodeName`是每一个DOM节点都拥有的属性,它代表了节点的名称。对于元素节点,`nodeName`通常返回的是元素的标签名,比如`<div>`、`<p>`...
2. **`.prop()`方法更适合获取DOM属性**:`prop()`方法可以访问真正的DOM属性,包括`tagName`、`nodeName`等,而这些是`.attr()`方法无法获取的。 #### 其他相关方法 - **`.is()`方法**:可以用来判断元素是否为...
如果节点的`nodeName`(大写的标签名)与正则表达式匹配,就将该节点添加到`nodes`数组中。最后,函数返回包含所有匹配节点的`nodes`数组,这些节点的顺序保持与他们在原始文档流中的顺序相同。 这个函数可以用于...
• get(0).tagName $(this).get(0).tagName • [0].tagName[0] $(this)[0].tagName • context.nodeName $(this).context.nodeName function getXMLData(){ $.ajax({ url:'data.xml', type: 'GET', dataType: '...
`get(0)`或`[0]`用于将jQuery对象转换为原生JavaScript DOM元素,因为DOM元素具有`nodeName`或`tagName`属性,可以返回元素的标签名。`toLowerCase()`是用来将返回的标签名转换为小写,因为HTML规范中标签名不区分大...
var tagName = $element.prop("nodeName"); ``` `nodeName`属性在某些情况下可能更通用,因为它不仅适用于HTML元素,还适用于XML文档中的元素。 需要注意的是,所有这些方法都假设你已经选择了正确的元素。如果...
注意:prop() 方法应该用于检索属性值,例如 DOM 属性(如 selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected)。 提示:如需检索 HTML 属性,请使用 attr() 方法...
var tagName = obj.nodeName.toUpperCase(); // 获取元素的标签名 // 如果元素不是input或textarea,则阻止Backspace键 if (tagName !== 'INPUT' && tagName !== 'TEXTAREA') { return stopIt(ev); } var ...
14. `nodeName`和`tagName`问题:`nodeName`返回元素的名称,大写在所有浏览器中,而`tagName`返回元素名,IE中大写,其他浏览器小写。使用`element.tagName.toUpperCase()`确保统一。 15. 元素属性:访问元素属性...
例如,`nodeName`属性与`tagName`非常相似,但`nodeName`返回的是包括HTML标记在内的标签名,对于XML文档来说,它的表现会有所不同。而在处理文本节点和注释节点时,我们可能需要用到`nodeType`属性,它能够告诉我们...
14. **nodeName和tagName问题**:`nodeName`返回的是大写的标签名,而`tagName`在所有浏览器中都是大写,对于一致性处理,推荐使用`tagName`。 15. **元素属性**:访问和设置元素属性时,IE支持`element.attribute...
总体而言,Kepware OPC Server与InTouch之间的通信配置涉及安装选项的选择、别名映射、AccessName与Topic的配置以及Tag的创建。这些步骤都需要仔细处理,以确保通信顺畅且准确。在安装和配置过程中,还需要注意诸如...
14. **nodeName和tagName问题**:`nodeName`在所有浏览器中返回的是大写的标签名,而`tagName`在标准浏览器中返回大写,但在IE中返回小写。通常使用`tagName`更为保险。 15. **元素属性**:不同浏览器对HTML元素...
此时,相当于tagName属性。 比如: <p>aaaa : 则返回 p ; 如果是属性节点,nodeName将返回这个属性的名字。 如果是文本节点,nodeName将返回一个#text的字符串。 另外我要说的是: nodeName属性是一个只读属性...
3. **`.tagName`** 直接访问:虽然不是标准的jQuery方法,但有些情况下,直接访问jQuery对象的`tagName`属性也能得到预期结果。例如,`console.log($('#myImg')[0].tagName);`。 4. **`.nodeName`** :和`.get(0)....
2. `nodeName`:返回元素的标签名,与`tagName`相同。 3. `nodeValue`:对于Element,其值为null。 4. `parentNode`:可能是Document或另一个Element。 5. 子节点可以是Element、Text、Comment、Processing_...
* 属性:tagName、nodeName、nodeValue、nodeType、innerHTML、outerHTML 等。 * 方法:createElement()、createTextNode()、appendChild()、insertBefore()、removeChild()、replaceChild() 等。 DOM 事件: DOM ...