国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS實(shí)現(xiàn)博客前端頁面(一)—— 封裝基礎(chǔ)庫

UCloud / 1413人閱讀

摘要:創(chuàng)建基本庫首先創(chuàng)建一個(gè)基本庫,名字叫做用于編寫最常用的代碼,然后不斷的擴(kuò)展封裝。

1、創(chuàng)建基本庫

首先創(chuàng)建一個(gè)基本庫,名字叫做base.js,用于編寫最常用的代碼,然后不斷的擴(kuò)展封裝。
在最常用的代碼中,最常用的就是獲取節(jié)點(diǎn)的方法。這里我們可以編寫代碼如下:

//創(chuàng)建base.js
//整個(gè)庫可以是一個(gè)對(duì)象
var Base={
    //方法名盡可能簡(jiǎn)短而富有意義
    getId:function(id){
        return document.getElementById(id);
    },
    getName:function(name){
        return document.getElementsByName(name);
    },
    getTagName:function(tag){
        return document.getElementsByTagName(tag);
    }
}
//類方法調(diào)用
window.onload=function(){
    alert(Base.getId("box").innerHTML);
    alert(Base.getName("chk")[0].value);
    alert(Base.getTagName("p")[0].innerHTML);
};
2、實(shí)現(xiàn)連綴語法

即可以使用Base.getId("box").css("color","red").html("標(biāo)題").click(function(){alert("a")});類似的語句實(shí)現(xiàn)對(duì)象方法的連續(xù)調(diào)用
需要在步驟1的基礎(chǔ)上改寫庫對(duì)象:

//分析:想要實(shí)現(xiàn)連綴語法Base.getId("box").css("color","red").html("標(biāo)題").click(function(){alert("a")});
//需要在Base類中實(shí)現(xiàn)css(),html(),click()方法,且方法都要return一個(gè)Base對(duì)象
//在Base對(duì)象中,一般設(shè)置css,innnerHTML,onclick的方法如下
//var base=new Base();    new一個(gè)Base類的實(shí)例
//base.getId("box").style.color="red";   定義color
//base.getId("box").style.backgroundColor="red";
//base.getId("box").innerHTML="標(biāo)題";
//base.getId("box").onclick=function(){alert("a")};
//現(xiàn)在需要將上面的設(shè)置為Base類的css,html,click方法,

//定義$函數(shù),用于生成多個(gè)Base()實(shí)例對(duì)象,后面需要Base實(shí)例時(shí),直接使用$()即可
var $ = function(){
    return new Base();
};
function Base(){
    //使用this關(guān)鍵字創(chuàng)建elements數(shù)組,用來保存獲取目標(biāo)節(jié)點(diǎn)和節(jié)點(diǎn)數(shù)組
    this.elements=[];
    //使用this關(guān)鍵字定義獲取節(jié)點(diǎn)的方法
    this.getId=function(id){
        var e=document.getElementById(id);
        this.elements.push(e);
        return this;
    }
    this.getTagName=function(tag){
        var e=document.getElementsByTagName(tag);
        for(var i in e){
            this.elements.push(e[i]);
        }
        return this;
    }
}
//也可以使用prototy添加Base的原型方法
Base.prototype.css=function(attr,value){
    //對(duì)指定節(jié)點(diǎn)元素設(shè)置屬性和值
    for(var i in this.elements){
        this.elements[i].style[attr]=value;
    }
    return this;
}
Base.prototype.html=function(str){
    for(var i in this.elements){
        this.elements[i].innerHTML=str;
    }
    return this;
};
//類方法調(diào)用
window.onload=function(){
     //每一個(gè)$()為一個(gè)對(duì)象實(shí)例,可調(diào)用類中封裝好的方法
    $().getId("box").css("color","red").html("title");
    $().getTagName("p").css("color","blue").html("標(biāo)題");
};
3、CSS的封裝 獲取行內(nèi)樣式

以上是通過html()方法和css()方法可以設(shè)置標(biāo)題內(nèi)容和CSS樣式,但現(xiàn)在如果想要通過這兩個(gè)方法獲取已將定義好的屬性值:類似于:$().getId("box").html(); $().getId("box").css();時(shí)是不滿足的,現(xiàn)在就需要重寫這兩個(gè)方法。

//分析:要實(shí)現(xiàn)方法既能設(shè)置傳入的參數(shù)值,返回Base對(duì)象,又能在傳入?yún)?shù)為null的情況下返回當(dāng)前屬性值,那只要判斷傳過來的參數(shù)即可:
//如果沒有傳參數(shù),則函數(shù)返回當(dāng)前屬性值,如果傳入?yún)?shù),則需要設(shè)置傳入的屬性值,并返回Base對(duì)象,重寫的代碼如下:
Base.prototype.css=function(attr,value){
    //對(duì)指定節(jié)點(diǎn)元素設(shè)置屬性和值
    for(var i in this.elements){
        //使用arguments數(shù)組對(duì)象獲取傳入的參數(shù),并判斷參數(shù)的個(gè)數(shù)
        if(arguments.length==1){
            return this.elements[i].style[attr];
        }
        this.elements[i].style[attr]=value;
    }
    return this;
}
Base.prototype.html=function(str){
    for(var i in this.elements){
        //使用arguments數(shù)組對(duì)象獲取傳入的參數(shù),并判斷參數(shù)的個(gè)數(shù)
        if(arguments.length==0){
            return this.elements[i].innerHTML;
        }
        this.elements[i].innerHTML=str;
    }
    return this;
};
//類方法調(diào)用
window.onload=function(){
     //每一個(gè)$()為一個(gè)對(duì)象實(shí)例,可調(diào)用類中封裝好的方法
    $().getId("box").css("color","red").html("title");
    //$().getTagName("p").css("color","blue").html("標(biāo)題");
    alert($().getId("box").html());
    alert($().getId("box").css("color"));
};
獲取外部CSS樣式

以上獲取的css樣式,僅是行內(nèi)的css,如果使用link鏈接的外部CSS,又該如何處理呢?
這里可以使用W3C 的window.getComputedStyle和IE的currentStyle來獲取,更改后的代碼如下:

Base.prototype.css=function(attr,value){
    //對(duì)指定節(jié)點(diǎn)元素設(shè)置屬性和值
    for(var i in this.elements){
        //使用arguments數(shù)組對(duì)象獲取傳入的參數(shù),并判斷參數(shù)的個(gè)數(shù)
        if(arguments.length==1){
            if(typeof window.getComputedStyle != "undefined"){//W3C
                return window.getComputedStyle(this.elements[i],null)[attr];
            }else if(typeof this.elements[i].currentStyle != "undefined"){//IE
                return this.elements[i].currentStyle[attr];
            }
        }
        this.elements[i].style[attr]=value;
    }
    return this;
}

以上內(nèi)容來自李炎恢老師JavaScript課程實(shí)戰(zhàn)篇筆記整理

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/90920.html

相關(guān)文章

  • 前端相關(guān)大雜燴

    摘要:希望幫助更多的前端愛好者學(xué)習(xí)。前端開發(fā)者指南作者科迪林黎,由前端大師傾情贊助。翻譯最佳實(shí)踐譯者張捷滬江前端開發(fā)工程師當(dāng)你問起有關(guān)與時(shí),老司機(jī)們首先就會(huì)告訴你其實(shí)是個(gè)沒有網(wǎng)絡(luò)請(qǐng)求功能的庫。 前端基礎(chǔ)面試題(JS部分) 前端基礎(chǔ)面試題(JS部分) 學(xué)習(xí) React.js 比你想象的要簡(jiǎn)單 原文地址:Learning React.js is easier than you think 原文作...

    fuyi501 評(píng)論0 收藏0
  • 個(gè)人分享--web前端學(xué)習(xí)資源分享

    摘要:前言月份開始出沒社區(qū),現(xiàn)在差不多月了,按照工作的說法,就是差不多過了三個(gè)月的試用期,準(zhǔn)備轉(zhuǎn)正了一般來說,差不多到了轉(zhuǎn)正的時(shí)候,會(huì)進(jìn)行總結(jié)或者分享會(huì)議那么今天我就把看過的一些學(xué)習(xí)資源主要是博客,博文推薦分享給大家。 1.前言 6月份開始出沒社區(qū),現(xiàn)在差不多9月了,按照工作的說法,就是差不多過了三個(gè)月的試用期,準(zhǔn)備轉(zhuǎn)正了!一般來說,差不多到了轉(zhuǎn)正的時(shí)候,會(huì)進(jìn)行總結(jié)或者分享會(huì)議!那么今天我就...

    sherlock221 評(píng)論0 收藏0
  • 【單頁面博客前端到后端】基于 DVA+ANTD 搭建博客前后臺(tái)界面

    摘要:在的的配置中添加自定義主題由腳手架和官網(wǎng)介紹,我們已經(jīng)自己配置并新建好了主題文件。單頁面博客從前端到后端環(huán)境搭建單頁面博客從前端到后端基于搭建博客前后臺(tái)界面單頁面博客從前端到后端基于和的權(quán)限驗(yàn)證與的設(shè)計(jì) 在上篇文章我們已經(jīng)搭建好了基礎(chǔ)的開發(fā)環(huán)境,接下來會(huì)介紹如何引入 DVA 和 ANTD ,以及在引入過程中需要注意的問題。這里只會(huì)詳細(xì)的書寫部分組件,其他的組件都是大同小異。你可以在 g...

    zqhxuyuan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<