
jQuery源码浅析
文章平均质量分 58
iteye_2245
这个作者很懒,什么都没留下…
展开
-
介绍jquery事件的一种内部写法
注释:本文不探究jquery event机制,只是参照jquery mobile看看作者们咋写的! 已往,我们在Jq的体系中,多是: //document绑定自定义事件$(document).bind("pagecreate",function(){ //.....});//然后触发它$(document).trigger(...2013-03-25 20:00:20 · 152 阅读 · 0 评论 -
jQuery源码浅谈系列---before
before(content) ----- 在每个匹配的元素之前插入内容。 1、参数: content String,Element,jQuery 插入到每一个目标前的内容 2、举例: //在所有段落之前插入$('p').before('<b>*</b>'); ...2012-06-30 14:40:30 · 148 阅读 · 0 评论 -
jQuery源码浅谈系列---after
after(content) ------ 在每一个匹配元素之后插入内容。 1、 参数: content ------ String | Element | jQuery 插入到每一个目标后的内容。 2、举例: //在所有段落之后插入HTML标记$("p").after("&...2012-06-30 13:09:33 · 146 阅读 · 0 评论 -
jQuery源码浅谈系列---prev()
prev([expr]) ------ 取得一个包含匹配元素集合中每一个元素紧邻的前一个同辈元素的元素集合。 参数: expr(可选) 可筛选前一个同辈元素的表达式 ...2012-06-18 21:57:15 · 265 阅读 · 0 评论 -
jQuery源码浅谈系列--- prevAll([expr])
prevAll([expr]) 查找当前元素之前所有的同辈元素。 参数: expr(可选)原创 2012-06-18 21:49:58 · 138 阅读 · 0 评论 -
jQuery源码浅谈系列---nextAll()
nextAll([expr]) ------ 查找当前元素之后的所有的同辈元素。 参数: expr -------- 用来过滤的表达式2012-06-18 21:47:27 · 191 阅读 · 0 评论 -
jQuery源码浅谈系列---closest()
closest(expr,[context]) 在1.3新增,从元素本身开始,逐级向上级元素匹配,并返回最先匹配的元素。 会检查当前元素是否匹配,如果匹配则直接返回元素本身。如果不匹配则向上查找父元素,一层一层往上,直到找到匹配选择器的元素。如果诶有返回一个空的jQuery对象。 closest与parents的主要区别: ...原创 2012-06-18 18:25:30 · 351 阅读 · 0 评论 -
IE下删除自定义属性的兼容性问题
很多时候我们会给某个dom元素赋予一些自定义的属性,当然我们也会有需求删除这些自定义的属性。 <div id="test"></div> 设置自定义的属性和值: document.getElementById("test")['zhang'] = 'yaochun'; 删除就得注意了: IE下不能直接采用delet...2012-12-17 10:02:58 · 451 阅读 · 0 评论 -
jQuery源码浅谈系列---parents
parents([expr]) 取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选。 举例: //找到id为ID元素的所有的类名为test的祖先元素。$('#ID').parents('.test'); ...2012-06-16 18:08:16 · 203 阅读 · 0 评论 -
jQuery源码浅谈系列---replaceAll
replaceAll(selector) --------- 用匹配的元素来替换所有selector匹配到的元素。 1、参数: selector 选择器 用于查找所要被替换的元素 2、举例: //将所有段落用b来替换$('<b&g...2012-06-30 14:56:58 · 100 阅读 · 0 评论 -
jQuery源码浅谈系列---end
end() ------ 回到最近的一个“破坏性”操作之前,将匹配的元素列表变为前一次的状态。 如果之前没有破坏性操作,则返回一个空集 破坏性操作------任何改变所匹配的jQuery元素的操作。 包含:add addSelf children ...2012-06-30 16:50:33 · 114 阅读 · 0 评论 -
jQuery源码浅谈系列---contents
contents() ---------- 查找匹配元素内部所有子节点(包括文本节点)。如果是iframe,则查找文档内容。 和children()方法类似,但是contents可以匹配到文本节点以及其他HTML元素 举例: //操作iframe$("iframe").contents().find("body"...2012-06-30 17:14:11 · 188 阅读 · 0 评论 -
jquery api之camelCase
本代码取之:1.4.3版本(才开始有) var rdashAlpha = /-([a-z])/ig, fcameCase = function(all,letter){ return letter.toUpperCase(); };camelCase:function(string){ ...原创 2013-03-12 11:36:07 · 349 阅读 · 0 评论 -
jq的选择器流程分析开篇
本文简单地分析以下jquery的选择器流程: 为了考量jq的版本优化,这篇的代码分析来自jq1.3 /* * @param selector * @param context * @info $的入口*/var jQuery = window.jQuery = window.$ = function(selector,context){ ...原创 2013-01-28 14:17:24 · 106 阅读 · 0 评论 -
jquery Sizzle系列之filters
本代码来自1.7.1版本。 jQuery.expr = Sizzle.selectors;jQuery.expr[":"] = jQuery.expr.filters; //4227行Sizzle.selectors = { //4483---返回的都是Boolean filters:{ /* ...原创 2013-01-28 12:16:24 · 155 阅读 · 0 评论 -
event.isDefaultPrevented
jQuery 1.3版本开始引入了一个这个api: event.isDefaultPrevented(); 返回Boolean,判断是否调用了event.preventDefault() //实例$("a").click(function(event){ alert(event.isDefaultPrevented());//...原创 2013-01-14 12:18:42 · 147 阅读 · 0 评论 -
jQuery相关的boxModel
此方法比较简单,但是可能很多使用过jQ的人不是很熟悉或者使用不频繁。 这个方法的作用: 如果这个页面和浏览器是以W3C CSS盒式模型来渲染的,则等于true通常在IE 6和IE 7的怪癖模式中这个值是false在document准备就绪前,这个值是null 1.2版本只有$.boxModel这样的方法。//jqu...2012-12-21 20:58:13 · 120 阅读 · 0 评论 -
深入解读jquery的数据存储相关(data)序3
前言: 上一篇: 深入解读jquery的数据存储相关(data)序2 上上一篇: 深入解读jquery的数据存储相关(data)开篇 正文: 本文关注一下jQuery1.4版本: 主要的变化: 1、增加了一个noData的对象:对特定的这3个标签不添加expando属性,当时觉得因为会抛错! n...2012-12-19 18:27:28 · 139 阅读 · 0 评论 -
深入解读jquery的数据存储相关(data)序2
前言: 先回顾一下上一篇:深入解读jquery的数据存储相关(data)开篇,本篇继续下一个版本。。。 正文: 上一篇其实已经简单地介绍了一个比较关键的地方: 节点如何和数据仓库(cache)直接的映射关系如何区别处理window节点绑定数据expando生成的规则。。。。本文先看一下jquery-1.3版本吧: ...2012-12-18 11:03:00 · 117 阅读 · 0 评论 -
深入解读jquery的数据存储相关(data)开篇
前言: 周六看了司徒的一篇文章,觉得这个topic不错,觉得效仿一下,深入剖析一下jQuery的data相关的实现。主要还是对页面的某些元素进行数据绑定及存储相关的操作,本topic是以一个专题的形式呈现,因为会比较多个版本之间的差异和优化。 正文: 还是老规矩吧,我喜欢在研究之前先问几个问题: 哪些节点(或者说是标签)不能存储数据?如何设计这个...2012-12-17 20:43:57 · 123 阅读 · 0 评论 -
jQuery源码浅谈系列---$.attr()
attr() 1、attr(name) 取得第一个匹配元素的属性值。如果元素没有相应的属性,则返回undefined。 2、attr(properties) 将一个"名/值"形式的对象设置为所有匹配元素的属性。 注:要设置class属性,必须用'className'作为属性名。 举例:...2012-06-16 17:34:49 · 517 阅读 · 0 评论 -
jQuery源码浅谈系列---$.removeAttr()
removeAttr(name) ------- 从每一个匹配的元素中删除一个属性。 参数: name -----------------要删除的属性名 $('#ID').removeAttr('id'); ...2012-06-16 17:00:17 · 162 阅读 · 0 评论 -
jQuery源码浅谈系列---$.param
jQuery.param(obj,[traditional]) 参数: obj -----数组或者jQuery对象会按照name/value进行序列化,普通对象按照key/value进行序列化 param -----是否使用传统方式浅层序列化返回值: 字符串String举几个应用的例子:...原创 2012-05-22 16:02:19 · 243 阅读 · 0 评论 -
jQuery源码浅谈系列---部分过滤选择器
jQuery源码浅谈系列---部分过滤选择器 ----今天包含的是我们常用的slice,eq,first,last 之所有吧这些放一起,很大程度上因为它们的调用是相似的。 1. slice(start,[end]) 返回的是jQuery对象 -----参数说明: start {Integer} -----开始选取子集...2011-10-27 11:54:07 · 117 阅读 · 0 评论 -
jQuery源码浅谈系列---$.noop
//返回一个空函数noop: function(){}2011-10-26 21:40:50 · 227 阅读 · 0 评论 -
jQuery源码浅谈系列---$.map
jQuery源码浅谈系列---$.map 其实这个api的实现原理上会很类似我以前写的$.each的一些思想。如果你弄懂了前面这个,我想再来看看$.map可能就很容易理解了 -------------功能上针对的是Array,将一个Array的元素转换到另一个数组中 ps:昨天和光哥探讨一些技术的时候忽然光哥问我 你觉得map到底是什么? thinking.........2011-10-26 14:08:36 · 102 阅读 · 0 评论 -
jQuery源码浅谈系列---$.inArray
之所以谈论一下这个api,是因为我以前在设计我自己的凤凰组件库的时候写过一个array的indexOf,然后我也写了一个JavaScript1.6新特性里面介绍的7个array扩展的api.所以回归到jQuery的源码再来看,可能就很简单了。 jQuery.inArray(value,array) 确认第一个参数在数组中的位置,从0开始计数(如果没有就返...2011-10-25 10:27:59 · 140 阅读 · 0 评论 -
关于each的一些思考
思考是从jQuery的一段代码开始的。 jQuery.each({ slideDown: genFx("show", 1), slideUp: genFx("hide", 1), slideToggle: genFx("toggle", 1), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }...2011-10-23 20:10:47 · 146 阅读 · 0 评论 -
jQuery源码浅谈系列---判断是否是XML文档
个人学习,简单记录 //1.4.4版本Sizzle.isXML = function(elem){ var documentElement = (elem ? elem.ownerDocument || elem :0 ).documentElement; return documentElement ? ...2011-10-19 20:51:34 · 165 阅读 · 0 评论 -
获取jQuery的使用版本号
很多人应该也会有这样的需求,获取当前使用的jQuery的版本号 简单记录 //来自Jquery的源码jQuery.fn = jQuery.prototype ={ ...... ...... ..... // The current version of jQuery being used jquery:"***",...2011-10-16 17:56:37 · 306 阅读 · 0 评论 -
jQuery源码浅谈系列---工具方法$.merge与$.unique
很多人在使用jquery的时候应该多会有array去重或者合并的需求吧,那么你一定对$.merge和$.unique不会陌生吧。 1.$.merge----------其实这个功能只是合并两个数组,返回的是array,包含第一个数组的元素后面跟着第二个数组元素 ps:这个不会去重复。 上源码:/*原理其实还是比较简单i是第一个数组的lengthl是第二个数组的l...2011-09-30 13:07:43 · 188 阅读 · 0 评论 -
jQuery源码浅谈系列---$.nodeName(你没见过?)
最近做富文本编辑器调研的时候看到xheditor的源码的时候觉得有点东西简单地说说。 第一个:我们判断this对象是否是textarea /*截取部分*/$.fn.xheditor = function(options){ this.each(function(){ //解释一下吧 ...2011-10-27 19:39:20 · 492 阅读 · 0 评论 -
jQuery源码浅谈系列---$.toArray
jQuery源码浅谈系列---$.toArray 这篇只是做个前瞻为后面的get等api打下理论基础。 jQuery.toArray() --------将jQuery集合中所有的DOM元素恢复成一个数组 源码展示: /*版本取之1.4.4原理其实调用的Array.prototype.slice...2011-10-28 10:08:42 · 158 阅读 · 0 评论 -
jQuery源码浅谈系列---get()
jQuery源码浅谈系列---get() 前言: 为什么介绍这个,是因为可能你用惯了链式操作或者领会了jQuery的各种api返回的多是jQuery对象,然后有的时候你也通过***[0]这样的方式去转成DOM对象,调用原生的一下属性和api。 正文: 1. get() -----------取得的是所有匹配的DOM元素的集合(或者讲元...2011-10-28 10:39:03 · 160 阅读 · 0 评论 -
jQuery源码浅谈系列---jQuery.getScript
jQuery.getScript(url,[callback]); -----通过HTTP GET请求载入并执行一个js文件。 在1.2版本之前只支持同域的js文件。 1、参数 url -------- String 待载入js文件的地址callback ...2012-05-22 13:40:39 · 428 阅读 · 0 评论 -
jQuery源码浅谈系列---replaceWith()
replaceWith(cpntent) @参数 content ----String,Element,jQuery,Function 用于将匹配元素替换掉的内容。如果这里传递一个函数进来,返回值必须是HTML字符串。 @example1 新的参数内容替换匹配已有的内容 <p>Hello</p> $("p"...原创 2012-05-15 16:34:36 · 154 阅读 · 0 评论 -
jquery ajax的各个事件执行顺序
关于ajax的一些配置事件的触发顺序做了一些总结: ajaxStart beforeSendajaxSendsuccessajaxSuccesserrorajaxErrorcompleteajaxCompleteajaxStop2012-09-17 15:39:09 · 147 阅读 · 0 评论 -
获取head元素
先上一段jquery 1.7.1版本的代码片段: if(s.crossDomain){ var script, head = document.head || document.getElementsByTagName("head")[0] || document.documentElement; ................2012-09-17 15:21:13 · 1240 阅读 · 0 评论 -
jQuery源码浅谈系列---$.isEmptyObject
其实关于这个工具类还是比较简单的,而且各大开源库的方式写法是一致的。 /*判断对象是否为空检测的方式是in 而非hasOwnProperty所以检测对象本身的属性还有从原型继承的属性@param obj ---检测的对象@return Boolean*/isEmptyObject: function(obj){ for(var ke...2011-11-02 20:58:36 · 160 阅读 · 0 评论 -
jQuery源码浅谈系列---$.isPlainObject
jQuery.isPlainObject(obj) ----------测试参数对象是否是纯粹的对象(通过“{}”或者“new Object”创建的) 参数obj--{Object}: 用于测试是否为纯粹的对象。 /*简单的列举几个测试的例子*/jQuery.isPlainObject({}); //truejQuery.isPlain...2012-02-26 14:05:32 · 178 阅读 · 0 评论