封装原生javascript连缀

来源:互联网 发布:javascript用户名验证 编辑:程序博客网 时间:2024/05/17 02:52
//连缀的封装
window.onload = function(){
$().getId('box').css('color','red').css('backgroundColor','black').click(function(){
alert('我是封装的click事件');
}) ; //实现连缀  用id获取的

//alert(base.getTagName('p').elements.length);
$().getTagName('p').css('color','blue').html('修改文字').click(function(){
alert('我是封装的click事件');

}) //通过获取标签名 有多个实现连缀

}


/*
连缀的封装
*/
var $ = function(){
return new Base();//让这个$函数 每次new 一个对象出来 这样子就保证了 不共用一个对象
}
function Base(){
//创建一个数组 来保存获取的节点(id)和节点数组(name)
this.elements = [];
//获取id节点
this.getId = function(id){
this.elements.push(document.getElementById(id));
return this; //返回Base对象
 }
 //获取元素节点
 this.getTagName = function(tag){
 var targs = document.getElementsByTagName(tag);
 for(var i=0;i<targs.length;i++){
 this.elements.push(targs[i]);
  }
 return this; //返回Base对象  
  }
}
Base.prototype.css = function(attr,value){ //给函数体添加方法 用原型
for(var i=0;i<this.elements.length;i++){
this.elements[i].style[attr] = value;
}
return this;
}
Base.prototype.html = function(str){ //给函数体添加方法 用原型
for(var i=0;i<this.elements.length;i++){
this.elements[i].innerHTML = str;
}
return this;
}
Base.prototype.click = function(fn){ //给函数体添加方法 用原型
for(var i=0;i<this.elements.length;i++){
this.elements[i].onclick = fn;
}
return this;
}



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>理解js库</title>
<script src="demo.js"></script>
<script src="base.js"></script>
</head>


<body>
<!-- 
<div id="box">box</div>
<input type="radio" name="sex"  value="男" selected = "selected"/>
<p>段落</p>
-->


<div id="box">box</div>
<p >段落1</p>
<p >段落</p>
<p>段落</p>
</body>
</html>


0 0
原创粉丝点击