您的位置:首页 > Web前端 > JavaScript

封装原生javascript连缀

2016-06-20 10:38 543 查看
//连缀的封装

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>

bb14
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  封装 连缀