DOM 元素节点
元素节点的nodeName返回什么?
返回标签名, 比如..document.getElementById("myDiv").nodeName == "div"属性节点的nodeName返回什么?
返回属性名, 比如:..document.getElementById("myDiv").attributes.item("attr1").nodeName == "attr1"文本节点的nodeName返回什么?
文本节点的 nodeName 返回 #text 比如文字文字document.getElementById("myDiv").firstChild.nodeName == "#text"元素节点的nodeValue返回什么?
返回 null属性节点的nodeValue返回什么?
返回 属性值 比如:..document.getElementById("myDiv").attributes.item("attr1").nodeValue == "value1"文本节点的nodeValue返回什么?
返回文本内容 比如:我是文字!document.getElementById("myDiv").firstChild.nodeValue == "我是文字!"某节点的下一个节点(即nextSibling) 一定是和 该节点是 同一类型(nodeType) 的节点吗?
我是文字 d1.nextSibling 等于 内容为:"我是文字" 的文本节点
比如说:元素节点的下一个节点必须是元素节点?还是可以是任何一类节点?
可以是任何一类节点 比如某节点的下一个节点(nextNode)和 该节点 必须是 在DOM树 的同一级吗? 还是可以跨级?
打个比方:
a节点包括a1,a2,a3节点。
b节点包括b1,b2,b3节点。
a,b节点在DOM树的同一级。
那么,a3的下一个节点(nextNode)是b1 还是为空?
是必须同级, 同父
a3.nextSiblling == null;某节点的子节点childNotes 返回 固定的某类节点还是 三种节点都返回?
返回 某节点 所有直接孩子 比如文字div1.childNodes 包括 "文字", "", "" 这三个孩子某节点的子节点childNotes 返回 里面全部的节点,还是只返回里面的一级节点?
返回的的节点列表包括 直接孩子, 不直接引用到孙子或更下一级后代 但,能够 间接 访问到所有后代 比如: theNode.childNodes[0].childNodes[5].childNodes[3].nodeValue 可以发现 childNodes 可以逐级 向下深入访问麻烦再教教我级别是怎么规定的好吗?就是说怎么样算是同一级,怎么样不是?
dom 就像一棵树
html
│
├—head
│ ├—link
│ ├—meta
│ ├—script
│ ├—style
│ └—title
│
└—body
├—footer
├—main
│ ├—left
│ ├—nav
│ └—right
└—top
html 是根,也是所有节点的老祖宗
head body 就是 html 的孩子
link,meta,script,style,title 就是 html 的孙子了
head,link,meta,script,style,title,body,footer,main,left,nav,right,top
上面的这些都是 html 的后代
head 和 body 的父节点,都是 html ,即是同父 可以称为兄弟节点
link meta script style title <<<< 这些是 head 的孩子, 这5个同父, 也就都是兄弟节点
footer main top <<< 这些是 body 的孩子, 这3个同父, 也互成为兄弟节点
link 是 head 的儿子, 是哥哥的儿子
main 是 body 的儿子, 是弟弟的儿子
所以,它们不同父,不能称为兄弟节点 是“堂兄弟”来的,呵呵但 link, main 都是 html 的孙子,它们有相同的“辈份”, 有相同“辈份”的就是 同级啦
属性节点 和 文本节点 都属于 元素节点 的子节点吗?
比如- 哈哈
属性不能称为元素的子节点
像 “你好” 是 A 的子节点,
href, onclick 不是 A 的子节点, 就只是 A 的属性
A 的下一节点不会是 “你好”
A 的下一节点是 “ul”
<a id="link" href="xxx.asp" onclick="appear()">你好</a><ul><li>哈哈</li></ul>
<script>alert(link.nextSibling.tagName)</script>
这样的 html 运行,会看到 link.nextSibling.tagName == “UL”