1.javascript類的定義
function Person(name,age,sex){
var self=this;
this.name=name;
this.age=age;
this.sex=sex;
toString=function(){
alert(self.name);
}
this.getName=function(){
return this.name;
}
}
使用:
var person=new Person("yhp",28,1);
person.getName();//可以訪問getName函數
person.toString();//不可以訪問toString函數
利用prototype.js也可以這么定義
var Person=Class.create();
必須定義Person的構造函數:
Person.prototype.initialize=function(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
2.在上面的Person類中,toString函數是不能直接訪問this.name的.
解決方法:可以定義變量self,把this賦值給它,在toString中利用self來訪問this.name.
var self=this;
toString(){
alert(self.name);
}
應用:定義一個類,有個成員變量number,在構造函數中傳入一個容器,在容器中創建一個div,div中綁定onclick,在onclick中訪問number
var Module=function(container){
var self=this;
this.container=container;
this.build=function(){
this.number=Math.random();
var div=document.createElement("div");
div.innerHTML="module";
div.style.cursor="pointer";
div.onclick=function(){
alert(self.number);//在此處是不能訪問this.number的.
}
this.container.appendChild(div);
test();
}
}
3.對于下面代碼:
while(count>=0){
var div=document.createElement("div");
div.className="number";
div.innerHTML=count+1;
div.style.cursor="pointer";
div.onclick=function(e){
alert(count);
}
}
當觸發div的onclick的時候,每次alert顯示都是-1;也就是最后count的值.但需要每次alert的都是innerHTML中值.
獲取innerHTML的方法:
對于事件,獲取觸發該事件的對象:
IE : window.Event.srcElement
Firefox:e.target //e是函數傳入的事件參數
獲取觸發事件的對象的InnerHTML:
getClickPageNumber=function(e){
return Try.these(
function() {return window.event.srcElement.innerHTML},
function() {return e.target.innerHTML}
) ;
}
修改onclick:
div.onclick=function(e){
alert(getClickPageNumber(e));
}
4.清除html的table中tbody中的內容.
<tbody id="tBody">
<tr>
<td>a</td>
<td>b</td>
</tr>
</tbody>
代碼:
$("tBody").innerHTML="";
上面的代碼在IE中是沒有效果的.
修改:
while (tBody.rows.length > 0) {
tBody.deleteRow(0);
}
function Person(name,age,sex){
var self=this;
this.name=name;
this.age=age;
this.sex=sex;
toString=function(){
alert(self.name);
}
this.getName=function(){
return this.name;
}
}
使用:
var person=new Person("yhp",28,1);
person.getName();//可以訪問getName函數
person.toString();//不可以訪問toString函數
利用prototype.js也可以這么定義
var Person=Class.create();
必須定義Person的構造函數:
Person.prototype.initialize=function(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
2.在上面的Person類中,toString函數是不能直接訪問this.name的.
解決方法:可以定義變量self,把this賦值給它,在toString中利用self來訪問this.name.
var self=this;
toString(){
alert(self.name);
}
應用:定義一個類,有個成員變量number,在構造函數中傳入一個容器,在容器中創建一個div,div中綁定onclick,在onclick中訪問number
var Module=function(container){
var self=this;
this.container=container;
this.build=function(){
this.number=Math.random();
var div=document.createElement("div");
div.innerHTML="module";
div.style.cursor="pointer";
div.onclick=function(){
alert(self.number);//在此處是不能訪問this.number的.
}
this.container.appendChild(div);
test();
}
}
3.對于下面代碼:
while(count>=0){
var div=document.createElement("div");
div.className="number";
div.innerHTML=count+1;
div.style.cursor="pointer";
div.onclick=function(e){
alert(count);
}
}
當觸發div的onclick的時候,每次alert顯示都是-1;也就是最后count的值.但需要每次alert的都是innerHTML中值.
獲取innerHTML的方法:
對于事件,獲取觸發該事件的對象:
IE : window.Event.srcElement
Firefox:e.target //e是函數傳入的事件參數
獲取觸發事件的對象的InnerHTML:
getClickPageNumber=function(e){
return Try.these(
function() {return window.event.srcElement.innerHTML},
function() {return e.target.innerHTML}
) ;
}
修改onclick:
div.onclick=function(e){
alert(getClickPageNumber(e));
}
4.清除html的table中tbody中的內容.
<tbody id="tBody">
<tr>
<td>a</td>
<td>b</td>
</tr>
</tbody>
代碼:
$("tBody").innerHTML="";
上面的代碼在IE中是沒有效果的.
修改:
while (tBody.rows.length > 0) {
tBody.deleteRow(0);
}