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 简单的进度条实现代码
Mar 11 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
Mar 14 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
Apr 25 Javascript
JS合并数组的几种方法及优劣比较
Sep 19 Javascript
jQuery中:file选择器用法实例
Jan 04 Javascript
javascript实现的闭包简单实例
Jul 17 Javascript
javascript 动态修改css样式方法汇总(四种方法)
Aug 27 Javascript
JavaScript的Number对象的toString()方法
Dec 18 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
Mar 09 Javascript
JS实现监控微信小程序的原理
Jun 15 Javascript
基于vue cli 通过命令行传参实现多环境配置
Jul 12 Javascript
ES6 Object属性新的写法实例小结
Jun 25 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
基于Zend的Captcha机制的应用
2013/05/02 PHP
php的dl函数用法实例
2014/11/06 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
js function定义函数使用心得
2010/04/15 Javascript
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
js中function()使用方法
2013/12/24 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
获取Django项目的全部url方法详解
2017/10/26 Python
python实现二叉树的遍历
2017/12/11 Python
Python聊天室程序(基础版)
2018/04/01 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
Python 访问限制 private public的详细介绍
2018/10/16 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
用python批量移动文件
2021/01/14 Python
介绍一下Make? 为什么使用make
2016/07/31 面试题
自学考试自我鉴定范文
2013/09/26 职场文书
精彩的广告词
2014/03/19 职场文书
数据保密承诺书
2014/06/03 职场文书
个人党性分析材料
2014/12/19 职场文书
公司人事任命通知
2015/04/20 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python