美文网首页
简版的jQuery实现过程

简版的jQuery实现过程

作者: 凉城十月 | 来源:发表于2020-08-10 09:32 被阅读0次

封装一个函数

function getSiblings(node){
  let nodes = node.parentNode.children;
  let arr = {}
  let length=0
  for(let i=0;i<nodes.length;i++){
      if(nodes[i] !== node){
        arr[length] = nodes[i]
        length +=1
      }
  }
  return arr
}

再封装一个

function addClass(node, classes){
 for(let key in classes){
   if(classes[key]){
     $(node).addClass(key)
   }
 }
}

命名空间

var dom = {}
dom.getSiblings(node)
dom.addClass(node, {a: true, b: false})

思考:能不能把 node 放在前面?
比如:
node.getSiblings()
node.addClass()

方法一:扩展 Node 接口

直接在 Node.prototype 上加函数

这个方法不太好,容易不小心改变prototype上面的函数。

方法二:新的接口 BetterNode

     function Node2(node){
         return {
             element: node,
             getSiblings: function(){

             },
             addClass: function(){

             }
         }
     }
     let node =document.getElementById('x')
     let node2 = Node2(node)
     node2.getSiblings()
     node2.addClass()

第二种叫做「无侵入」。
把 Node2 改个名字吧

function jQuery(node){
    return {
        element: node,
        getSiblings: function(){

        },
        addClass: function(){
    
        }
    }
}
let node =document.getElementById('x')
let node2 =jQuery(node)
node2.getSiblings()
node2.addClass()

相关文章

  • 简版的jQuery实现过程

    封装一个函数 再封装一个 命名空间 思考:能不能把 node 放在前面?比如:node.getSiblings()...

  • 自己动手封装一个JQuery(简版)

    目标 通过对JQuery使用的分析,实现一个简版的自己的JQuery 先看一个JQuery的使用Demo 这个代码...

  • 自己实现一个jQuery的API

    关于对jQuery学习的帮助可以看方方老师的文章jQuery都过时了,那我还学它干嘛接下来我们自己来实现一个简版的...

  • 2019-06-27 @于志程

    Jquery 动态实现3D轮播效果 (简版) 先看一下效果图 我使用的是animate 自定义动画效果实现 首先定...

  • 简版jQuery

    方方讲课了 一、封装函数 1.function getSiblings(node){ } 和function ad...

  • 初探jquery 实现过程

    代码实现细节: 声明一个伪数组 判断传入的参数是节点还是字符串,若是字符串则用querySelectorAll()...

  • jQuery基础知识

    jQuery jQuery能实现的效果,js都能实现;js能实现的效果,jQuery未必能实现 jQuery大体分...

  • 利用jquery子属性过滤器实现隔行变色

    利用jquery子属性过滤器实现隔行变色 之前这个方法不够简单css实现隔行换色 - 简书 参考 jQuery子属...

  • 各种版本jquery引用地址

    jquery-3.1.1(最新)官网jquery压缩版引用地址: jquery-3.0.0官网jquery压缩版引...

  • jQuery基本使用

    一. jQuery的基础知识 源文件jQuery文件min是压缩过的版本。区别:在开发过程中,我们使用未压缩的版...

网友评论

      本文标题:简版的jQuery实现过程

      本文链接:https://www.haomeiwen.com/subject/rayldktx.html