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对象不能进行转换)
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答4.9k 阅读✓ 已解决
5 回答2k 阅读
3 回答2.3k 阅读✓ 已解决
这个是对DOM原生的
querySelectorAll
方法的一个封装。逐行来看第一行是函数定义,函数名为$$ 参数为
selecotr
(选择器),context
(进行搜索的节点)第二行是
context
默认值为document
对象,第三行是在
context
下调用querySelectorAll
第四行是将获取到的元素节点以数组方式返回