美文网首页
最简洁实现 jQuery

最简洁实现 jQuery

作者: fangtang0101 | 来源:发表于2018-10-11 16:56 被阅读13次

用最简单的代码还原jQuery最核心的思路
html

<!DOCTYPE html>
<html>

<head>
    <title></title>
    <script type="text/javascript" src="index.js"></script>
</head>
<body>
    <div>abc ...</div>
    <p>jjjjj</p>
</body>
<script type="text/javascript">

    console.log('ppp',$('p'));
$("p").css("background-color", "red");
// $("p").html('这是通过 jquery 来改变值的');
</script>
</html>

js

var $ = function(selector){
    return zepto.init(selector);
}

var zepto = {};

zepto.init = function(selector){
    var slice = Array.prototype.slice;
    var dom = slice.call(document.querySelectorAll(selector));
    return zepto.Z(dom,selector);
}

zepto.Z = function(dom,selector){
    return new Z(dom,selector);
}

function Z(dom,selector){
    var i,len = dom?dom.length:0;
    for(i=0;i<len;i++) this[i] = dom[i];
    this.length = len;
    this.selector = selector || '';
}

$.fn={
    constructor:zepto.Z,
    css:function(key,val){
        console.log('css ....',this);
        this[0].style['background-color'] = 'yellow';
    },
    html:function(val){
        console.log('html ....');
        this[0].innerHTML = val;
    }
}
zepto.Z.prototype = Z.prototype = $.fn;

js 再简洁点

// 简化版,但是此处 没有支持扩展,主要是 $.fn 里面加 contructor:zepo.Z
$ = function(selector){
    return zepo.Init(selector);
}
var zepo = {
    Init:function(selector){
        return new Z(selector)
    }
}

function Z(selector){
    var list = document.querySelectorAll(selector);
    var i,len= list.length>0 ? list.length : 0;
    for(i=0;i<len;i++) this[i] = list[i];
    if(selector) this.selector = selector;
}
$.fn={
    css:function(key,val){
        console.log('css ....',this);
        // this[0].style['background-color'] = 'red';
        // 
        this[0].style[key] = val;
    },
    html:function(val){
        console.log('html ....');
        this[0].innerHTML = val;
    }
}
Z.prototype = $.fn;

相关文章

  • 最简洁实现 jQuery

    用最简单的代码还原jQuery最核心的思路html js js 再简洁点

  • jQuery中缓存函数分析

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

  • jquery重点笔记

    jquery特性 消除浏览器差异,简洁的操作DOM的语法$('#'),轻松实现动画,修改css等操作。 var j...

  • jQuery基础知识

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

  • jQuery相关方法总结 01

    jQuery jQuery是一个快速、简洁的JavaScript库。jQuery设计的宗旨是“write Less...

  • 深入浅出——jQuery教程

    一.jQuery简介 (一). 什么是jQuery jQuery是一个轻量级, 简洁的JavaScript库, 是...

  • jQuery-01

    jQuery jQuery是一个快速、简洁的JavaScript库。jQuery设计的宗旨是“write Less...

  • 学习 jQuery选择器

    1- jQuery 介绍 jQuery是一个快速、简洁的JavaScript库。jQuery设计的宗旨是“writ...

  • jQuery的介绍

    jQuery的介绍 一、什么是jQuery jQuery是一个快速、简洁的JavaScript框架,是继Proto...

  • JQuery零基础语法速学

    JQuery学习笔记 1.认识JQuery 简介 JQuery是一个JavaScript库,语法简洁,有跨平台的兼...

网友评论

      本文标题:最简洁实现 jQuery

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