- 浏览: 2609321 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1286)
- js-oop (2)
- js-window (10)
- js-event (19)
- js-string (37)
- js-array (27)
- js-page (4)
- js-dom (62)
- js-lang (8)
- js-number (7)
- js-platform (3)
- js-object (15)
- js-element (3)
- js-browser (7)
- js-url (6)
- js-date (10)
- css基础 (48)
- css优化 (15)
- html基础 (17)
- html标签 (19)
- js基础 (117)
- js-兼容性差异 (33)
- js引擎 (3)
- js性能 (14)
- json (6)
- jQuery源码浅析 (43)
- web mobile开发资料 (78)
- js跨域 (2)
- html5 (74)
- html5-canvas (7)
- css3 (53)
- 浏览器 (5)
- api设计学 (3)
- js-加载 (3)
- linux (37)
- 架构师 (1)
- php (2)
- self开发的脚本库--凤凰 (2)
- web应用名词 (6)
- javascript新特性翻译 (8)
- ajax (6)
- jQuery动画效果 (7)
- prototype的解读 (13)
- 优秀插件翻译 (1)
- css解决方案 (26)
- 数据库 (2)
- english daily (59)
- 浏览器内核探究 (1)
- jQuery插件介绍 (9)
- jquery基础篇 (26)
- chrome浏览器问题整理 (14)
- js选择器那些事 (3)
- 前端框架 (26)
- Firefox私有属性 (11)
- webkit私有属性集合 (17)
- 书籍推荐 (21)
- 数据结构 (1)
- 网站建设相关 (7)
- 好文翻译 (2)
- 个人作品 (3)
- kissy的解读 (4)
- css-layout(布局研究) (5)
- less研究 (1)
- YUI探究 (1)
- hash探究 (1)
- js动画 (7)
- 前端面试题 (37)
- css书写规范 (1)
- js模板引擎 (6)
- js模块化 (19)
- 编写高质量代码 (3)
- 性能探究--应用协议 (2)
- 前端图像处理 (19)
- Mac OS相关 (21)
- 正则表达式 (11)
- 离线应用相关 (0)
- 前端工具 (65)
- nodeJS (55)
- jquery优化篇 (2)
- 设计模式探究系列 (3)
- windows7 (2)
- IE10 (10)
- 微博开放平台探究 (2)
- 常用web服务接口 (1)
- 数据存储相关 (8)
- 零时文件 (2)
- jQuery Mobile (16)
- backbone (15)
- underscore (22)
- sass (11)
- android (3)
- phonegap (10)
- IE私有 (11)
- qwrap (8)
- git (14)
- chrome extensions (5)
- freemarker (11)
- angularJS (3)
- seo (2)
- markdown (3)
- css动画 (4)
- 安卓开发 (2)
- React (7)
- 活动页技术 (1)
- 网络安全 (3)
- grunt (7)
- Lo-Dash (3)
- 前端国际化 (4)
- 版本控制 (2)
- 盒模型 (4)
- 微信开发 (1)
- Mock数据工具 (1)
- sails (1)
- vim (1)
- js-color (1)
- iOS 基础 (43)
最新评论
-
jertom:
<div id="showInfo" ...
addEventListener等事件监听的参数细谈 -
乌托邦国王:
引用[u][/u]
css3动画属性系列之transform细讲移动translate -
hvang1988:
能提供附件下载吗,找不到js库,google封了访问不了
Syntaxhighlighter---代码高亮插件介绍 -
sscsacdsadcsd:
我的天 那到底是为什么function是object我看und ...
typeof func ==='function'的疑惑 -
wkjiangwk:
试了,没用,你们从不去测试。
介绍一下x-webkit-speech -------实现语音输入
jQuery源码浅谈系列---部分过滤选择器
----今天包含的是我们常用的slice,eq,first,last
之所有吧这些放一起,很大程度上因为它们的调用是相似的。
1. slice(start,[end]) 返回的是jQuery对象
-----参数说明:
- start {Integer} -----开始选取子集的位置。第一个元素是0,如果是负数,则可以从集合的尾部开始
- end {Integer} ----可选,结束选取自己的位置,如果不指定就是本身的结尾。
/*版本取的是1.4.2 原理上会调用Array.prototype.slice给内部的api---pushStack做参 参数处理上没有在()定义,而是从arguments里面获取 */ slice: function(){ return this.pushStack(slice.apply(this,arguments), "slice" ,slice.call(arguments).join(",")); }
2. eq(index)
--------获取第N个元素(index从0开始)返回的是jQuery对象
/* @param i ---index 从0开始 @依赖与jquery的slice */ eq: function(i){ //判断i ===-1 那么调用jQuery的slice return i === -1 ? this.slice(i) : this.slice(i, +i +1); }
3. first()
--------获取第一个元素 返回的是jQuery对象
/* 核心思想就是调用eq 传一个index为0的参数 */ first: function(){ return this.eq(0); }
4. last()
------获取最后一个元素
/* 核心思想还是调用jQuery的eq传一个参数index为-1 有的人会问为什么是-1 你看看Array的原生的slice从后面查找是不是-1 我也写过原生slice的一些文章可以参考 */ last: function(){ return this.eq(-1); }
其实作为外部接口来讲这些很简单和清晰,但是作为这些api实现的底层------pushStack才是核心。
/* 这边的push是引用原生的Array.prototype.push @param elems @param name ---如果是slice调用传过来的多是slice @param selector */ pushStack : function(elems,name,selector){ //创建一个新的jQuery对象 //当然如果你是一个多版本的研究者你会发现从1.5.1开始这边的代码变了 //var ret = this.constructor(); var ret = jQuery(); //会调用工具类判断参数elems是否是array if(jQuery.isArray(elems)){ push.apply(ret,elems); }else{ //如果不是数组的话调用merge的api //如果不清楚可以看看我的其他的merge的文章 jQuery.merge(ret,elems); } //绑定一个属性并赋值this对象给它 ret.prevObject = this; ret.context = this.context; if(name === "find"){ ret.selector = this.selector + (this.selector ? " " : "") +selector; }else if(name){ ret.selector = this.selector + "." +name+ "("+selector+")"; } return ret; }
发表评论
-
介绍jquery事件的一种内部写法
2013-03-25 20:00 2035注释:本文不探究jquery event机制, ... -
jquery add详解
2013-03-19 18:40 0add:function(elem,types, ... -
jquery事件系统解耦之一
2013-03-19 17:43 0先上代码:http://code.jqu ... -
jquery api之camelCase
2013-03-12 11:36 1217本代码取之:1.4.3版本(才开始有) ... -
jq的选择器流程之二
2013-01-28 16:45 0前面简单些了一篇《jq的选择器流程分析开篇》,本文关注1. ... -
jq的选择器流程分析开篇
2013-01-28 14:17 1726本文简单地分析以下jquery的选择器流程: 为了 ... -
jquery Sizzle系列之filters
2013-01-28 12:16 1729本代码来自1.7.1版本。 jQuery.expr ... -
event.isDefaultPrevented
2013-01-14 12:18 1644jQuery 1.3版本开始引入了一个这个 ... -
jQuery相关的boxModel
2012-12-21 20:58 1584此方法比较简单,但是 ... -
深入解读jquery的数据存储相关(data)序3
2012-12-19 18:27 2225前言: 上一篇: 深入解读jquery的数 ... -
深入解读jquery的数据存储相关(data)序3
2012-12-19 18:26 1本文关注一下jQuery1.4版本: 主要的变化: ... -
深入解读jquery的数据存储相关(data)序2
2012-12-18 11:03 1816前言: 先回顾一下上一篇:深入解读jquery ... -
深入解读jquery的数据存储相关(data)序2
2012-12-18 11:00 3前言: 先回顾一下 ... -
深入解读jquery的数据存储相关(data)开篇
2012-12-17 20:43 1984前言: 周六看了司徒的一篇文章,觉得这个top ... -
深入解读jquery的数据存储相关(data)开篇
2012-12-17 20:29 2前言: 周六看了司徒的一篇文章,觉得这个topic不 ... -
IE下删除自定义属性的兼容性问题
2012-12-17 10:02 2852很多时候我们会给某个dom元素赋予一些自定义的属 ... -
jquery ajax的各个事件执行顺序
2012-09-17 15:39 1571关于ajax的一些配置事件的触发顺序做了一些总结: ... -
获取head元素
2012-09-17 15:21 1876先上一段jquery 1.7.1版本的代码片段: ... -
jQuery源码浅谈系列---contents
2012-06-30 17:14 1431contents() ----- ... -
jQuery源码浅谈系列---end
2012-06-30 16:50 1450end() ------ 回到最近的一个“破 ...
相关推荐
<script src="./public/js/jquery-ui-1.10.3.min.js"> <script src="./public/js/jquery.datepicker-zh-CN.js"></script> <link href="./public/css/jqueryui/jquery-ui-1.10.3.min.css" rel="stylesheet"> $( "#...
《jQuery源码解读——深入理解jQuery v1.10.2》 jQuery,这个轻量级的JavaScript库,自2006年发布以来,以其简洁的API和强大的功能深受开发者喜爱,成为Web开发领域中不可或缺的一部分。本文将对jQuery v1.10.2的...
jquery插件jquery-ui-timepicker-addon.j
总之,jQuery.editable-select-master是一款强大的下拉菜单解决方案,它的实时编辑、多选功能、自定义过滤和事件监听等特性,为开发者提供了丰富的选择和高度的灵活性。在实际的网页开发中,善用这款插件,无疑可以...
jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)...
jquery.qtip-1.0.0-rc3.js 弹出层
jQuery UI 是一个开源的 JavaScript 库,它是基于 jQuery 的扩展,提供了大量的用户界面组件,如拖放、日期选择器、滑块、对话框等。jQuery UI 的设计目标是与 jQuery 核心库无缝集成,为开发者提供了一套完整的前端...
《jQuery-Timepicker-Addon:构建高效日历时间选择器》 在Web开发中,用户界面的易用性和交互性是至关重要的。jQuery-Timepicker-Addon是jQuery库的一个扩展,为网页提供了一种优雅的方式来处理日期和时间的选择。...
jquery-ui中文日历控件,使用的时候记得先把文档编码改为UTF-8,否则中文显示乱码!
6. **事件驱动**:jQuery-File-Upload通过触发一系列的事件,如`start`, `progress`, `done`, `fail`等,让开发者能够灵活地控制上传流程,并根据需要添加自定义逻辑。 7. **自定义样式和行为**:开发者可以根据...
jQuery UI Datepicker日期选择插件很好用,但是不满意的是不能精确到时分秒,而jquery-ui-timepicker-addon.js正是基于jQuery UI Datepicker的一款可选时间的插件。 使用方法: 1.把下载的文件包含到页面里面 2....
### jQuery源码分析系列知识点概览 #### 一、总体架构与核心概念 - **前言开光**:介绍分析jQuery源码的目的和价值,强调通过深入研究源码,可以学习到先进的设计理念和实践技巧。 - **总体架构**:解析jQuery的...
在本篇文章中,我们将深入探讨其自定义版本 `jquery-ui-1.8.18.custom.min.js` 和相关的 CSS 文件,以理解它们如何协同工作,为网页带来强大的功能和美观的界面。 首先,`jquery-ui-1.8.18.custom.min.js` 是 ...
- **jquery-1.2.1**:这是JQuery的早期版本,引入了更多的CSS选择器支持,增强了DOM操作性能,并且开始支持Ajax请求的取消。 - **jquery-1.2.6**:此版本主要修复了一些已知的bug,提高了稳定性和兼容性,优化了...
jQuery-File-Upload-9.11.2(完整版,插件已下载),官方的很多引用文件都是线上的,加载很慢,下载到本地后更靠谱,这个版本是已经整理好的,直接调用后台php的部分也在其中,可以直接应用到项目中,直接拷贝过去就...
《jQuery UI与jQuery插件深度解析——以jquery-ui-1.8.2.custom.min.js为例》 在Web开发领域,jQuery库以其简洁易用的API和强大的功能深受开发者喜爱。而jQuery UI作为jQuery的一个扩展,提供了丰富的用户界面组件...
- **模块化**:jQuery源码采用模块化设计,如核心功能、选择器、遍历、属性操作、事件等都是独立模块,便于维护和扩展。 - **工厂函数**:$(selector)是jQuery的工厂函数,它接受字符串、DOM元素或jQuery对象,...
jQuery源码分析-插件