x && x.nodeType!=1
如果找不到元素节点,那么这个循环就一直进行下去?
如果找不到元素节点,那么这个循环就一直进行下去?
2016-03-31
while (x && x.nodeType!=1)必须写!必须判断x为真 并且x.nodeType!=1才执行循环。你试着将var x=document.getElementsByTagName("li")[2];while (x && x.nodeType!=1)和while (x.nodeType!=1),就能看出有差别了,<li id="c">html</li>的下一个子节点是空白符再下一个就没有了,是null(火狐浏览器),null属于false,如果不判断x是否为真,只写while(x.nodeType!=1)是错误的语句,null是没有nodeType属性的,这里就出错了,停住了,不在执行下面的return x;
举报