美文网首页
模拟jQuery实现

模拟jQuery实现

作者: Jason_Shu | 来源:发表于2018-09-26 10:56 被阅读0次

目的:实现两个函数:addClass和setText.

我们首先把自己模拟jQuery的库封装好。

window.jQuery = function(nodeOrSelector) {
  let nodes = {};
  //  参数nodeOrSelector可能是节点也可能是选择器,所以我们加以判断过滤.
  if(typeof nodeOrSelector === "string") {  //  为选择器时
    let temp = document.querySelectorAll(nodeOrSelector);
    for(let i = 0; i < temp.length; i++) {
      nodes[i] = temp[i];
    }
    nodes.length = temp.length;
  } else if(typeof nodeOrSelector === Node) {
    //  如果为节点
    nodes = {
      0: nodeOrSelector,
      length: 1,
    };
  }
  
  //  我们处理好了目标节点,然后封装好那两个方法
  nodes.addClass = function(className) {
    for(let i = 0; i < nodes.length; i++) {
      nodes[i].classList.add(className);
    }
  }

  nodes.setText = function(text) {
    for(let i = 0; i < nodes.length; i++) {
      nodes[i].textContent = text;
    }
  } 

  return nodes;
}

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

相关文章

  • 模拟jQuery实现

    目的:实现两个函数:addClass和setText. 我们首先把自己模拟jQuery的库封装好。

  • 初探jQuery

    jQuery API的实现 自己模拟jQuery的一个API预览:http://js.jirengu.com/pa...

  • JQuery 的元素选择器的实现原理

    jQuery源码的结构 下面是模拟jQuery实现简单的获取元素内容 结论 所以,JQuery 其实就是在一个匿名...

  • 模拟jQuery实现原理

    jQuery实质上就是一个构造函数,接受一个参数,这个参数可能是节点,然后返回一个方法对象是操作节点。 大概模拟下...

  • jQuery中缓存函数分析

    若有不妥,请多指教 模拟jQuery的缓存实现 这个函数更容易理解,但是不简洁看懂这个函数后,jQuery中的缓存...

  • jQuery Ajax上传文件

    模拟前台html页面 1.jQuery插件AjaxFileUpload用来实现ajax文件上传 2.通过jQuer...

  • 模拟 jQuery API的实现

    jQuery 是什么? jQuery实质上是一个构造函数,接受一个参数,这个参数可能是节点,然后返回一个方法对象去...

  • [JavaScript基础] 继承模式 命名空间 对象枚举

    继承模式 圣杯模式 Yahoo YUI库 命名空间 链式调用(模拟jQuery) 实现方法的连续调用,return...

  • JS模拟jquery事件监听

    JS模拟jquery事件监听

  • jQuery基础知识

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

网友评论

      本文标题:模拟jQuery实现

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