問題出在aaRoot.querySelector盡然還有返回值!因為上下文查找的范圍包含了自身了。
拋開IE8以下瀏覽器不說,現(xiàn)代瀏覽器也有這個問題,我覺得這樣的解釋更合理:
querySelector/querySelectorAll下(即是element.開頭,而不是document.)的CSS選擇器是絕對的。它們并不會相對于任何特定的元素,甚至不會相對于調(diào)用querySelectorAll的元素。
試下這倆看結(jié)果:
aaRoot.querySelector('.aaron span');
aaRoot.querySelector('div div');
拋開IE8以下瀏覽器不說,現(xiàn)代瀏覽器也有這個問題,我覺得這樣的解釋更合理:
querySelector/querySelectorAll下(即是element.開頭,而不是document.)的CSS選擇器是絕對的。它們并不會相對于任何特定的元素,甚至不會相對于調(diào)用querySelectorAll的元素。
試下這倆看結(jié)果:
aaRoot.querySelector('.aaron span');
aaRoot.querySelector('div div');
2017-08-21
內(nèi)存泄漏這東西學(xué)問和大了,不得看看瀏覽器GC算法,現(xiàn)代瀏覽器標(biāo)記-清除,IE6,7引用計數(shù) ,不得去看看常見的幾種內(nèi)存泄漏的常見,閉包,DOM對象的二次引用(大數(shù)據(jù)直接賦給DOM對象的屬性), 計時器,全局變量的創(chuàng)建等
2017-08-04
核心就是jQuery.fn = jQuery.prototype = {init(){}}
而jQuery函數(shù)的返回值為 new jQuery.fn.init()
老師漏了一句,jQuery.fn.init.prototype = jQuery.prototype,如此一來,所有掛到j(luò)Query原型上的方法都會成為$()實例的方法。
而jQuery函數(shù)的返回值為 new jQuery.fn.init()
老師漏了一句,jQuery.fn.init.prototype = jQuery.prototype,如此一來,所有掛到j(luò)Query原型上的方法都會成為$()實例的方法。
2017-07-31
this.length=1
this[0]=elem
this.get=function(num){
return this[num]
}
在這基礎(chǔ)上其實還可以實現(xiàn)什么shift,push,pop,sort,map,這就是老師所說的類數(shù)組吧
實現(xiàn)push就需要每次this.length+1,實現(xiàn)map的方法是接受一個函數(shù)做參數(shù),遍歷數(shù)組,在每個元素上調(diào)用傳入的函數(shù),最后返回結(jié)果數(shù)組
this[0]=elem
this.get=function(num){
return this[num]
}
在這基礎(chǔ)上其實還可以實現(xiàn)什么shift,push,pop,sort,map,這就是老師所說的類數(shù)組吧
實現(xiàn)push就需要每次this.length+1,實現(xiàn)map的方法是接受一個函數(shù)做參數(shù),遍歷數(shù)組,在每個元素上調(diào)用傳入的函數(shù),最后返回結(jié)果數(shù)組
2017-07-23