两个节点中间的空白节点难道不是第一给节点的下一个节点吗?
空白节点的确是第一个节点的下一个节点,但请读懂得课程中下面这段代码.
x.nodeType!=1 ,限定了当下一个节点为非元素节点(元素节点nodeType值为1)时,会找到它紧跟的下一个元素节点并返回。而空白节点实质属于文本节点,其nodeType值为3.
总之使用了get_nextSibling,在获取下一个节点时,当下一个节点为非元素节点时,会直接获取它最近的下一个元素节点。
function get_nextSibling(n){ var x=n.nextSibling; while (x && x.nodeType!=1){ x=x.nextSibling; } return x; }
while (x && x.nodeType!=1){
x=x.nextSibling;
}
这段代码就是验证浏览器是否把空白地方当作节点了。 如果不等于1,那就是算上空白了。等于1就把空白忽略了。