简单模拟JQ链式编程核心
来源:互联网 发布:公司网站 php源代码 编辑:程序博客网 时间:2024/06/05 03:22
简单模拟JQ链式编程核心
- 在myJq.js中
(function () {//将$注册在window上 var $ = window.$ = window.jQuery = function (selector) { return new Elements(findDoms(selector)); }; //核心方法 function Elements(doms) { for (var i = 0, d; d = doms[i++];) { this.push(d); } } //暴露原型,提供扩展 $.fn = Elements.prototype = { length: 0, push: Array.prototype.push, each: function (callback) { for (var i = 0; dom = this[i]; i++) { //使用call将回调函数,传给dom callback.call(dom, i, dom); } //链式编程,最后都返回本身 return this; } }; //简单的选择器封装 function findDoms(selector) { var index = selector.charAt(0); if (index == '#') { // 需要数组,此处需要用数组返回 return [document.getElementById(selector.substr(1))]; } if (index == '.') { return document.getElementsByClassName(selector.substr(1)); } return document.getElementsByTagName(selector); }})();
- 在页面html中
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>解析jq</title> <script src="myJq.js"></script></head><body><div class="d1">1</div><div class="d1">6</div><div class="d2">2</div><div class="d3" id="test">3</div><div class="d4">4</div><div class="d5">5</div><script>//通过原型扩展css $.fn.css = function (css, value) { if (arguments.length == 2) { return this.each(function (i, dom) { dom.style[css] = value; }); } if (css instanceof String || typeof css == 'string') { return this[0].style[css]; } return this.each(function (i, dom) { for (var v in css) { dom.style[v] = css[v]; } }); } //通过each实现链式编程,写法太啰嗦,上面扩展了css $('.d1').each(function () { this.style.color = 'red'; }).each(function () { this.style.border = '1px solid #000'; }); //参照上面的css扩展 $('#test').css('color', 'blue').css('background-color','#000'); $('#test').css({ color: 'blue', 'background-color': '#000' }); </script> </body></html>
0 0
- 简单模拟JQ链式编程核心
- 简单链式编程学习(一)
- jq链式写法浅析
- jq的链式调用
- Retrofit简单封装,实现链式编程
- 91 仿jq 链式选择器
- JQ选择的链式写法
- Python核心编程:用列表模拟堆栈
- 链式编程
- 链式编程
- 链式编程
- JQ模拟下拉框多选
- 链式(响应式)编程的简单理解
- 链式编程,iOS简单封装属性字符串,实现富文本.
- 读书笔记——Windows核心编程(8)Interlocked单向链式栈
- 读书笔记——Windows核心编程(8)Interlocked单向链式栈
- js/jq模拟点击事件
- css3模拟jq点击事件
- 2017-05-13 紧急安全提醒,针对高校同学
- 正则表达式
- C语言之关键字const
- 枚举类
- xamarin学习笔记A01上(android环境的安装)
- 简单模拟JQ链式编程核心
- function name should be lowercase
- S标签判断session的值
- libc.so.6: version `GLIBC_2.14' not found
- 图
- 对象与垃圾回收
- Linux下Socket编程中用send发送结构体
- 比特币敲诈病毒 NSA武器库防御方法
- 黄金圈理论和知识体系