为了账号安全,请及时绑定邮箱和手机立即绑定

能否帮我解释下加粗的句子?

function dir(elem, dir, until) {    //这个dir怎么理解?until呢?
  var matched = [],
    truncate = until !== undefined;
  while ((elem = elem[dir]) && elem.nodeType !== 9) { 
    if (elem.nodeType === 1) {
      if (truncate) {
        if (elem.nodeName.toLowerCase() == until || elem.className == until) {
          break;
        }
      }
      matched.push(elem);
    }
  }
  return matched;
}

  jQuery.each({
    parent: function(elem) {
      var parent = elem.parentNode;
      return parent && parent.nodeType !== 11 ? parent : null;
    },
    parents: function(elem) {
      return dir(elem, "parentNode");
    },
    parentsUntil: function(elem, until) {
      return dir(elem, "parentNode", until);
    }
  }, function(name, fn) {
    ajQuery[name] = function(until, selector) {
      return  fn(until, selector);
    };
  });

正在回答

2 回答

dir => direction 方向

0 回复 有任何疑惑可以回复我~
  1. 你写错了吧 第二个参数不是dir 定义一个函数dir  elem 是要访问的DOM元素 第二个参数是它的兄弟或者父元素等等 until是截止到哪一个元素 比如第二个参数为'parentNode' 截止到body 那就返回一个数组是elem的所有父元素直到body 

  2. aJquery[name] 给ajQuery定义新的方法 name就是前面那个对象的每一个key (parent,parents,parentsUtil)  即给ajQuery额外定义了三个属性 每个属性的值是一个function

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

能否帮我解释下加粗的句子?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信