jquery连缀语法如何实现


Posted in Javascript onNovember 29, 2012

我想熟悉javascript的没有不知道jquery的吧,作为首屈一指的javascript框架,他的许多特性都让人兴奋不已,其中不得不提的就是特有的连缀书写语法了,那他到底只怎么实现的呢,我们也来实现一个吧.

sx.$=function(id){ 
var t=(typeof(id)=="string"?document.getElementById(id):id); 
t.text=function(){ 
return this.innerText?this.innerText:this.innerHTML.replace(//<.*?/>/igm,""); 
} 
t.html=function(){ 
return this.innerHTML?this.innerHTML:null; 
} 
t.first=function(){ 
return this.firstChild?this.firstChild.nodeName!="#text"?sx.$(this.firstChild):null:null; 
} 
t.last=function(){ 
return this.lastChild?this.lastChild.nodeName!="#text"?sx.$(this.lasChild):null:null; 
} 
t.pre=function(){ 
return this.previousSibling?sx.$(this.previousSibling):null; 
} 
t.next=function(){ 
return this.nextSibling?sx.$(this.nextSibling):null; 
} 
t.parent=function(){ 
return this.parentNode?sx.$(this.parentNode):null; 
} 
t.setevent=function(e,f){ 
if(t.attachEvent){ 
t.attachEvent("on"+e,f); 
}else{ 
t.addEventListener(e,f,false); 
} 
} 
t.removeevent=function(e,f){ 
if(t.dettachEvent){ 
t.dettachEvent("on"+e,f); 
}else{ 
t.removeEventListener(e,f,false); 
} 
} 
t.setstyle=function(s){ 
var s=s.split(","); 
for(var i=0;i<s.length;i++){ 
var s1=s[i].split(":"); 
this.style[s1[0]]=s1[1]; 
} 
} 
t.getstyle=function(s){ 
if(this.currentStyle){ 
return this.currentStyle[s]; 
}else{ 
return document.defaultView.getComputedStyle(this,null).getPropertyValue(s); 
} 
} 
t.selectpath=function(m){ 
var m1=m; 
var m=m.split("/"); 
var t=[]; 
var e=this.getElementsByTagName("*"); 
for(var i=0;i<e.length;i++){ 
var e1=e[i] 
var a=""; 
var i1=m.length-1; 
while(e1!=this){ 
a=e1.tagName+"/"+a; 
e1=e1.parentNode; 
//alert(a); 
} 
//alert(a); 
if(m1.toLowerCase()+"/"==a.toLowerCase()){ 
t.push(sx.$(e[i])); 
} 
} 
return t; 
} 
t.get=function(a){ 
return this.getAttribute(a); 
} 
t.set=function(a,v){ 
return this.setAttribute(a,v); 
} 
t.paste=function(h){ 
if(typeof(h)=="string"){ 
var d=document.createElement("span"); 
d.innerHTML=h; 
}else{ 
var d=document.createElement("span"); 
d.appendChild(h); 
} 
var t1=this.childNodes; 
for(var i=0;i<t1.length;i++){ 
alert(t1[i]) 
this.removeChild(t1[i]); 
} 
this.appendChild(d); 
d.removeNode(false); 
} 
return t; 
} 
sx.$$=function(){ 
var t=[] 
for(var i=0;i<arguments.length;i++){ 
t.push(sx.$(arguments[i])) 
} 
return t; 
}

上面的代码是我最近写跨平台的javascript框架的一段核心代码,可以看出我用的是递归实现连缀语法的,在自身的方法里不断调用自身,这样实验闭包,使对象连续操作.顺便说一下,我这里对t对象用的是方法,如果是属性的话,那么在innerHTML里会显示出来的.

马上要考试了,没有太多的时间学习与研究了,虽然自己的专业和计算机无关,但还是祝愿自己不要挂课吧.
文章不足之处,还望各位多多指正.

Javascript 相关文章推荐
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
Nov 18 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
Jun 20 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
Dec 15 Javascript
原生javascript实现匀速运动动画效果
Feb 26 Javascript
简单讲解AngularJS的Routing路由的定义与使用
Mar 05 Javascript
最全面的百度地图JavaScript离线版开发
Sep 10 Javascript
vue.js学习之UI组件开发教程
Jul 03 Javascript
Windows下Node.js安装及环境配置方法
Sep 18 Javascript
angular1.x ui-route传参的三种写法小结
Aug 31 Javascript
node.js express框架简介与实现
Jul 23 Javascript
vue实现在线翻译功能
Sep 27 Javascript
layui清除radio的选中状态实例
Nov 14 Javascript
javascript 使td内容不换行不撑开
Nov 29 #Javascript
json原理分析及实例介绍
Nov 29 #Javascript
javascript全局变量封装模块实现代码
Nov 28 #Javascript
Javascript Request获取请求参数如何实现
Nov 28 #Javascript
js移除事件 js绑定事件实例应用
Nov 28 #Javascript
js arguments对象应用介绍
Nov 28 #Javascript
web基于浏览器的本地存储方法应用
Nov 27 #Javascript
You might like
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
9个比较实用的php代码片段
2016/03/15 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
jQuery显示和隐藏 常用的状态判断方法
2015/01/29 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
js实现随机抽奖
2020/03/19 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
python3 模拟登录v2ex实例讲解
2017/07/13 Python
python实现彩票系统
2020/06/28 Python
python实现录音小程序
2020/10/26 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
平面设计自荐信
2013/10/07 职场文书
综合测评自我鉴定
2013/10/08 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
班主任培训研修日志
2015/11/13 职场文书
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS