hsbzzhz
2017-02-19 18:26
我看示例代码,开始x = n.nextSibling;后来在while循环里 x=x.nextSibling又来一次,这样的话不是变成n的下一个的下一个了吗
function get_nextSibling(n){ var x=n.nextSibling; while (x && x.nodeType!=1){//当x存在且x不是元素节点时,会执行下面的循环语句 x=x.nextSibling;//满足上述条件,则继续查找下一个节点,直至找到nodeType值为1的元素节点,则继续执行函数,return x } return x; }
答案我写成标注了
var x=n.nextSibling;
while (x && x.nodeType!=1){
x=x.nextSibling;
}
return x;
是这里的是吧 while这里的第二个是只有在第一个nextSibling的节点不符合条件(要求为兄弟节点 比如说是#text就不是本例中的li的兄弟节点)不符合的时候才执行while里即第二个nextSibling 符合要求的话 会直接到return x
JavaScript进阶篇
468196 学习 · 21891 问题
相似问题