美文网首页饥人谷技术博客
用原生DOM实现一个jQuery的API

用原生DOM实现一个jQuery的API

作者: 孙炎_ | 来源:发表于2019-01-14 22:58 被阅读4次

今天第一次接触jQuery,先简单的实现一个jQuery的API,实现两个方法:

  1. addClass()
  2. setText()

主要讲讲实现的过程与思路,其实也比较简单,主要就是把常用的DOM对象封装成函数即可。
1.首先建立一个函数,并初始化一个object,最终函数中返回这个object,并且带有 0,1,2....等key,其value是读取到的DOM元素或者是节点;object还含有length,长度为key的最大值+1;object再带有多种方法key,一一对应其相应的函数。其实这个object就是一个伪数组,类似于参数arguments
2.还要判断实现的函数参数是否为string类型,或者是Node节点,然后返回不同的objects。
3.主要就是通过原生的DOM API :document.querySelectorAll()实现object的部分key。
4.还有一点要使用到window这个全局对象将该函数封装好。
下面就是具体代码:

var sunDom = function(string) {
    let nodes = {length: 0}
    if (typeof string === 'string') {
        var elements = document.querySelectorAll(string)
        for (let index = 0; index < elements.length; index++) {
            const element = elements[index]
            nodes[index] = element
            nodes.length += 1
        }
    } else if(string instanceof Node) {
        nodes = {
            0: string,
            length: 1
        }
    }

    nodes.addClass = function addClass(classes) {
        for (let index = 0; index < nodes.length; index++) {
            const element = nodes[index]
            element.classList.add(classes)          
        }
    }

    nodes.setText = function(string) {
        for (let index = 0; index < nodes.length; index++) {
            const element = nodes[index]
            element.textContent = string      
        }
    }
    console.log(nodes)
    return nodes
}

window.jQuery = sunDom
window.$ = jQuery

var $div = $('div')
$div.addClass('red') // 可将所有 div 的 class 添加一个 red
$div.setText('hi') // 可将所有 div 的 textContent 变为 hi

相关文章

  • 实现一个 jQuery 的 API

    想要实现一个以下功能用原生js的DOM API来实现一个类jQuery API的功能 1、首先获取DOM元素 判断...

  • Angularjs选项卡

    用jQuery实现选项卡,通过操作dom节点实现,jQuery多数api方便操作dom。例如next()、sibl...

  • 利用DOM API实现两个jQuery API

    本篇文章将介绍如何使用浏览器提供的原生DOM API来实现jQuery的两个实用的API。 通过了解DOM API...

  • 实现一个 jQuery 的 API

    本文通过使用原生DOM API实现类似于jQuery的元素添加类和获取元素文字的方法来理解jQuery的实现原理 ...

  • 用原生DOM实现一个jQuery的API

    今天第一次接触jQuery,先简单的实现一个jQuery的API,实现两个方法: addClass() setTe...

  • 如何实现一个jQuery的api

    什么是jQuery 实现jQuery的api 实现jQuery的api说起来也很简单,就是对DOM进行封装。话不多...

  • insertAfter实现

    用原生JS实现在一个dom元素后插入新的节点? 在js的dom api中有insertBefore()方法 在已知...

  • tab切换

    html代码 css代码 原生DOM jQuery实现 显示效果

  • jQuery设计思想

    JQuery简单说就是,这是一个封装了 DOM 操作的库,使用它比直接使用原生 DOM API 更方便,更好读 链...

  • 01jquery的基本认知

    1、 jQuery(JQ) jQuery是一个用原生js封装的js类库作用 大量直接操作DOM 解决兼容问题dom...

网友评论

    本文标题:用原生DOM实现一个jQuery的API

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