通过层次关系获取节点
节点之间都存在着层次关系:
1,父节点 是唯一的节点 parentNode
2.子节点 是可以有多个 childNodes
3,兄弟节点 上一个兄弟节点 是唯一的节点 previousSibling
下一个兄弟节点 是唯一的节点 nextSibling
节点类型:
1,标签型节点. 类型:1
2,文本型节点. 类型:3 #text
3,属性节点. 类型:2
4,注释节点. 类型:8 #comment
//获取表格节点
var tabNode = document.getElementById("tabid");
//1,获取父节点
var node = tabNode.parentNode;
alert(node.nodeName+"...."+node.nodeType+"....."+node.nodeValue);*/
//2,获取子节点
var nodes = tabNode.childNodes;//注意表格节点的子节点默认就是tbody.
alert(nodes[0].nodeName);
var trNodes = nodes[0].childNodes;
alert(trNodes[0].nodeName);*/
//3,获取兄弟节点
var node = tabNode.previousSibling;//上一个兄弟节点
alert(node.nodeName+"......."+node.nodeType+"...."+node.nodeValue);
//下一个兄弟节点
node = tabNode.nextSibling;
alert(node.nodeName);
//获取下一个不是空白文本的节点
node = node.nextSibling;
while(node.nodeType=3 &&node.nodeValue==' ')
node =node.nextSibling;
alert(node.nodeName+"......."+node.nodeType+"...."+node.nodeValue);
//对于兄弟节点获取时,会出现空白文本节点,所以最好都要跟上对获取到的节点的判断.所以判断最好加上正则表达式,判断空白或者回车符等.比较麻烦,那么获取节点时,尽量避免使用兄弟节点.