nodeName,tagName
- 元素节点,nodeName属性和tagName属性返回相同的值
- 文本节点,nodeName属性会返回"#text",而tagName属性会返回undefined.
<body>
<div id="div1">hello</div>
<input type="text" id="text1">
</body>
<script>
var div1 = document.getElementById("div1");
var text1 = document.getElementById("text1");
if (div1.nodeType == 1 && text1.nodeType == 1) {
/*元素节点*/
console.log("div1 nodeName:", div1.nodeName);
console.log("text1 nodeName:", text1.nodeName);
console.log("div1 tagName:", div1.tagName);
console.log("text1 tagName:", text1.tagName);
/*文本节点*/
console.log("div1 nodeName:", div1.firstChild.nodeName); // div1.childNodes[0].nodeValue
console.log("div1 tagName:", div1.firstChild.tagName);
}
</script>
结果:
区别
tagName只能在元素标签上使用
nodeName则可以在所有的节点上使用