window.jQuery = ???
window.$ = jQuery
var ('div')
div.setText('hi') // 可将所有 div 的 textContent 变为 hi。
???是什么呢。
答案:
function(nodeOrSelector){
var nodes ={}
if(nodeOrSelector === 'string'){
var temp =document.querySelectorAll(nodeOrSelector)
for(let i = 0; i<temp.length; i++){
nodes[i] = temp[i]
}e
node.length = temp.length
}else if(nodeOrSelector instanceof Node){
nodes ={
0:nodeOrSelector
length:1
}
}
nodes.addClass = function(classes){
classes.forEach((value) =>{
for(let i = 0 ; i<nodes.length; i++){
nodes[i] .classList.add(value)
}
})
}
nodes.setText = function(text){
for(let i = 0; i<nodes.length; i++){
nodes[i].textContent =text
}
}
}
实现的过程。
声明一个jQuery函数,函数里面我们首先声明了一个空的nodes对象。先判断传进来的参数是节点还是选择器。如果为选择器则使用dom对象的方法获取所有。遍历这个对象,把值赋给nodes。如果传进来的是节点,我们就直接使吧节点装进nodes这个对象中。然后我们在给nodes这个对象加我们需要的属性。
其实jQuery就一个函数,里面封装很多方法,我们通过这些方法来获取节点(元素),并对我们获取的节点进行各种操作。就是图一个简洁方便。其内涵还是原生的js。