3 个回答

这个是对DOM原生的querySelectorAll方法的一个封装。逐行来看
第一行是函数定义,函数名为$$ 参数为selecotr(选择器),context(进行搜索的节点)
第二行是context默认值为document对象,
第三行是在context下调用querySelectorAll
第四行是将获取到的元素节点以数组方式返回

function a(x){
    z=x||document;//若传入x那么z就复制为x否则赋值为document   你里面的context就是这个意思,因为怕你混淆所以怎么写
}


function $$(selector,context){
    context=context||document;//表示默认值为document
    var element=context.querySelectorAll(selector);   //querySelectorAll是一个高级选择器,返回的是一个集合;
    return Array.prototype.slice.call(element)   //Array.prototype.slice()是说往数组的原型链上添加元素     .call的话是改变this指针  这句是将获取到的元素以数组的方式返回
}

简单的说,就是以数组形式返回你需要查找的dom元素,是jquery选择器的简化版
querySelectorAll 在文档内找全部符合选择器描述的节点包括Element本身。
Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,除了IE下的节点集合(因为ie下的dom对象是以com对象的形式实现的,js对象与com对象不能进行转换)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题