问题出在aaRoot.querySelector尽然还有返回值!因为上下文查找的范围包含了自身了。
抛开IE8以下浏览器不说,现代浏览器也有这个问题,我觉得这样的解释更合理:
querySelector/querySelectorAll下(即是element.开头,而不是document.)的CSS选择器是绝对的。它们并不会相对于任何特定的元素,甚至不会相对于调用querySelectorAll的元素。
试下这俩看结果:
aaRoot.querySelector('.aaron span');
aaRoot.querySelector('div div');
抛开IE8以下浏览器不说,现代浏览器也有这个问题,我觉得这样的解释更合理:
querySelector/querySelectorAll下(即是element.开头,而不是document.)的CSS选择器是绝对的。它们并不会相对于任何特定的元素,甚至不会相对于调用querySelectorAll的元素。
试下这俩看结果:
aaRoot.querySelector('.aaron span');
aaRoot.querySelector('div div');
2017-08-21
核心就是jQuery.fn = jQuery.prototype = {init(){}}
而jQuery函数的返回值为 new jQuery.fn.init()
老师漏了一句,jQuery.fn.init.prototype = jQuery.prototype,如此一来,所有挂到jQuery原型上的方法都会成为$()实例的方法。
而jQuery函数的返回值为 new jQuery.fn.init()
老师漏了一句,jQuery.fn.init.prototype = jQuery.prototype,如此一来,所有挂到jQuery原型上的方法都会成为$()实例的方法。
this.length=1
this[0]=elem
this.get=function(num){
return this[num]
}
在这基础上其实还可以实现什么shift,push,pop,sort,map,这就是老师所说的类数组吧
实现push就需要每次this.length+1,实现map的方法是接受一个函数做参数,遍历数组,在每个元素上调用传入的函数,最后返回结果数组
this[0]=elem
this.get=function(num){
return this[num]
}
在这基础上其实还可以实现什么shift,push,pop,sort,map,这就是老师所说的类数组吧
实现push就需要每次this.length+1,实现map的方法是接受一个函数做参数,遍历数组,在每个元素上调用传入的函数,最后返回结果数组
2017-07-23