如何把JS写成类

mootools创建了一个dialog widget

   1. var Dialog = new Class({  
   2.     Implements: Events,  
   3.     initialize: function() {  
   4.     },  
   5.     show: function() {  
   6.         // ....  
   7.         this.fireEvent('show', this);  
   8.     }  
   9. });  
  10.   
  11. var dialog = new Dialog();  
  12. dialog.addEvent('show', function() {  
  13.     // ....  
  14. });  

-----------------------------------------------------------------------------------

方法一:

if (!window.testClass) 
{ 
testClass = 
 { 
 data:null, //类的属性
 init: function() //类的方法
 { 
 this.data=456; 
 alert("init") 
 }, // 注意逗号 
 show: function() //类的方法 
 { 
 alert("show:"+this.data) 
 } 
 } 
}
调用方法:
testClass是类名
testClass.init();
testClass.show();

方法二:

//////////////////////////////////////////////////////////////////////
//取得 指定元素的 子元素(特定) 											//
//子元素可以指定 name 													//
//子元素可以指定 tagName 												//
//返回集合 (指定name或tagName的子元素集合) 								//
//////////////////////////////////////////////////////////////////////

function Child_class(){
	this.list_elment=new Array();
	//取得指定元素的所有子元素中元素名为name的元素集合 (有name取name,无name取id )
	this.getChildsByName=function(element,name){
		var state="name";
		return this.getChilds(element,name,state);
	};
	//取得指定元素的所有子元素中tagName为name的元素集合 
	this.getChildsByTagName=function(element,name){
		var state="tagName";
		return this.getChilds(element,name,state);
	};
	//state为"name",取得 指定元素的 name为name子元素
	//state为"tagName",取得 指定元素的 tagName为name子元素
	this.getChilds=function(element,name,state){
		this.find(element,name,state);
		return  this.list_elment;  //返回集合
	};
	//通用方法	
	this.find=function (element,name,state){
		if(null==element){return ;}
		var nodes=element.childNodes;  //所有子元素
		for(var i=0;i<nodes.length;i++){
			if(nodes[i].nodeType==1){ //节点类型为1			
				var name_id="";
				if(state=="name"){
					name_id=nodes[i].name==null?nodes[i].id:nodes[i].name;  //有name取name,无name取id 
				}else  if (state=="tagName"){
					name_id=nodes[i].tagName;  
				}else{
					alert("请传参数,指定按name或tagName搜索元素!");return ;
				}				
				if(name_id==name){
					this.list_elment.push(nodes[i]);  //加入集合
				}				
				var bl=nodes[i].hasChildNodes(); //有无下一层子元素
				if(bl){
					this.find(nodes[i],name,state);  //递归			
				}								
			}							 
		}
	};
}


//调用方法如下:
//var c=new Child_class();
//var oForm=document.getElementById('oForm');
//var rs=c.getChildsByName(oForm,"m");
//alert(rs.toString());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值