dir: function( elem, dir ){
var matched = [],
cur = elem[dir];
while ( cur && cur != document ) {//cur存在,并不等于document
if ( cur.nodeType == 1 )
matched.push( cur );
cur = cur[dir];
}
return matched;
}, nth: function(cur,result,dir,elem){
result = result || 1;
var num = 0;
for ( ; cur; cur = cur[dir] )
if ( cur.nodeType == 1 && ++num == result )
break; return cur;
},
求助解析JQ源码“for ( ; cur; cur = cur[dir] )”意思?

解决方案 »

  1.   

    第一步判断cur对象是否为null
    不为null,执行for中语句
    然后没有达到break条件的时候,从cur对象中取出dir属性,继续循环,如果取得值为null,则退出循环
      

  2.   

    可以这样理解
    for ( ;这里是循环成立的条件,返回布尔值;下一次循环时的操作)