美文网首页
简单模仿jQuery

简单模仿jQuery

作者: 饥人谷_王捷 | 来源:发表于2018-10-23 23:37 被阅读0次

今天开始学习jQuery,理解其实现模式和大体思想,然后自己简单实现一些类jQuery功能,这样能更好地学习使用它。直接看代码,实现细节将以注释形式讲解。

window.jQuery = function (nodeOrSelector) {  // 添加全局函数,返回一个伪数组(hash)
    var nodes = {};
    if (typeof nodeOrSelector === 'string') {
     // 检测传入类型,如果是字符串则是一个css选择器,遂使用querySelectorAll
        var temp = document.querySelectorAll(nodeOrSelector); // 返回伪数组
        for (let i = 0; i < temp.length; i++) { 
        // 遍历伪数组并将其加入nodes,添加length属性
            nodes[i] = temp[i];
            nodes.length = temp.length;
        }
    } else if (nodeOrSelector instanceof Node) {
      // 检测是否是一个元素节点 ,同样将其组织成伪数组形式
        nodes = {
            0: nodeOrSelector,
            length: 1
        }
    }
    // 为nodes添加方法,这样在返回nodes后就可以直接使用nodes.xxx的形式调用方法
    nodes.addClass = function (c) {
        for (let i = 0; i < nodes.length; i++) {
            // 遍历nodes,为其中的每个元素添加class
            nodes[i].classList.add(c);
        }
    }
    nodes.setText = function (text) {
            // 设置文本,改变元素的显示文本,同样使用遍历的方法
        for (let i = 0; i < nodes.length; i++) {
            nodes[i].textContent = text;
        }
    }
    return nodes;
}
window.$ = jQuery; // 将jQuery改名为$,方便调用

以上是jQuery实现的大体形式,这只是一个极简版,主要在于体会其设计思想,真正的jQuery实现过程自然是要复杂的多。

相关文章

  • 简单模仿jQuery

    今天开始学习jQuery,理解其实现模式和大体思想,然后自己简单实现一些类jQuery功能,这样能更好地学习使用它...

  • 简易的jQuery

    @(Inbox) 本文会用最简单的形式来模仿jQuery源码。 jQuery看着是什么样子的? $(美元符号)是j...

  • jQuery笔记(三)-- 使用过滤器

    jQuery选择器能够模仿CSS和XPath语法,提供高效、准确匹配元素的方法,jQuery过滤器是一系列简单,实...

  • 模仿jQuery

    封装函数 用原生DOM和js模仿jQuery的功能。 1.0版本 不能输入选择器字符串。只能输入单个node,操作...

  • 简单模仿两个jQuery API

    这篇博客主要是使用DOM API进行封装模仿jQuery API的实现。在平常写代码时常常会发现DOM API在大...

  • jquery学习第一天

    1.js模仿jquery的入口函数: $(document).ready(function(){ function...

  • 30.jQuery简介

    1,JQuery简单背景介绍 2,JQuery版本介绍 3,JQuery文件介绍

  • 来,模仿个jQuery

    想要看看:jQuery到底是什么 尝试封装个函数 封装一个可以加类的函数: 来搞一个命名空间(就是起个名字,方便用...

  • jQuery模仿QQ列表

  • window.onload与$(document).ready(

    1、引入jQuery库,可到jQuery官网http://jquery.com/下载 2、编写简单的jQuery程...

网友评论

      本文标题:简单模仿jQuery

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