成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript常用腳本集錦5

joywek / 419人閱讀

摘要:代碼來源一些常用的操作方法介紹查找相關(guān)元素的前一個兄弟元素的方法。查找元素指定層級的父元素。

DOM操作的增強版功能函數(shù)
/**
 * 將一個DOM節(jié)點、HTML字符串混合型參數(shù)
 * 轉(zhuǎn)化為原生的DOM節(jié)點數(shù)組
 *
 * */
function checkElem(a) {
    var r = [];

    if (a.constructor != Array) {
        //如果不是參數(shù)數(shù)組,則強行轉(zhuǎn)換
        a = [a];
    }

    for (var i = 0; i < a.length; i++) {
        //如果是字符串,例如"
  • aa
  • " if (a[i].constructor == String) { //使用一個臨時元素來存放HTML var div = document.createElement("div"); //注入HTML,轉(zhuǎn)換成DOM結(jié)構(gòu) div.innerHTML = a[i]; for (var j = 0; j < div.childNodes.length; j++) { r[r.length] = div.childNodes[j]; } } else if (a[i].length) { //假定是DOM節(jié)點數(shù)組 for (var j = 0; j < a[i].length; j++) { r[r.length] = a[i][j]; } } else { //DOM節(jié)點 r[r.length] = a[i]; } } return r; } /** * 在parent執(zhí)行環(huán)境下,在before元素下前面添加elem元素 * */ function before(parent, before, elem) { //檢查是否提供parent節(jié)點參數(shù) if (elem == null) { elem = before; before = parent; parent = before.parentNode; } //獲取元素的新數(shù)組 var elems = checkElem(elem); /** * 向后遍歷數(shù)組, * 因為我們向前插入元素 * */ for (var i = elems.length - 1; i >= 0; i--) { parent.insertBefore(elem[i], before); } } /** * 為parent追加一個子元素的輔助函數(shù) * * */ function append(parent, elem) { var elems = checkElem(elem); for(var i = 0; i <= elems.length; i++){ parent.appendChild(elems[i]); } } /** * 刪除elem節(jié)點函數(shù) * * */ function remove(elem) { if(elem) { elem.parentNode.removeChild(elem); } } /** * 從一個元素中刪除所有子節(jié)點的函數(shù) * * */ function empty(elem) { while(elem.firstChild) { remove(elem.firstChild); } }

    代碼來源:https://gist.github.com/hehongwei44/31ce781d77ca33baea48

    創(chuàng)建DOM元素的通用函數(shù)
    /*創(chuàng)建DOM元素的通用函數(shù)*/
    function create (elem) {
        return document.createElementNS ? document.createElementNS("http://" +
            "www.w3.org/1999/xhtml", elem) : document.createElement(elem);
    }
    
    //如果提供的是字符串,則把它轉(zhuǎn)化成文本節(jié)點.
    function checkElem(elem) {
        return elem && elem.constructor == "String" ? document.createTextNode(elem) : elem;
    }
    
    //在parent執(zhí)行環(huán)境下,在before元素下前面添加elem元素
    function before(parent, before, elem){
        /*
        * 如果不提供parent的情況下,則before接受parent參數(shù),elem接受before的參數(shù)。
        * ps:該方法處理很獨特,值得借鑒
        * */
        if(elem == null) {
            elem = before;
            before = parent;
            parent = before.parent;
        }
    
        parent.insertBefore(checkElem(elem),before);
    }
    
    //為parent追加一個子元素的輔助函數(shù)
    function append(parent, elem){
        parent.appendChild(elem);
    }
    

    代碼來源:https://gist.github.com/hehongwei44/b449b9081b00bc1dc6ac

    檢查元素是否有一個指定的特性
    /*檢查元素是否有一個指定的特性*/
    function hasAttribute(elem, name) {
        // !!表達式快速的求bool值
        return !!elem.getAttribute(name);
    }
    

    代碼來源:https://gist.github.com/hehongwei44/fb9789ef08a2ef9c7ec3

    獲取元素文本內(nèi)容的通用函數(shù)
    /*獲取元素文本內(nèi)容的通用函數(shù)*/
    function text(e) {
        var str = "";
        //判斷元素是否包含子元素
        e = e.childNodes || e;
    
        //遍歷子元素,獲取其文本內(nèi)容
        for (var i = 0; i < e.length; i++) {
            //如果子元素下面還包含子元素,則遞歸執(zhí)行
            str += e[i].nodeType != 1 ? (e[i].nodeValue) : text(e[i].childNodes);
        }
    
        return str;
    }
    

    代碼來源:https://gist.github.com/hehongwei44/08429d872a5f19ca7d6b

    簡單的DOM的API封裝
    /*根據(jù)ID獲取元素*/
    var $id = function(id){
        return document.getElementById(id);
    };
    
    /*根據(jù)標簽名獲取元素,返回元素的節(jié)點偽數(shù)組*/
    var $tag = function(tagName, parent){
        return (parent || document).getElementsByTagName(tagName);
    };
     /*根據(jù)樣式名獲取元素,返回元素的節(jié)點數(shù)組。其中className是必填項目*/
    var $class = function (className, tagName, parent) {
    
        //元素可能存在多個className,故匹配我們所需要的className
        var re = new RegExp("(^|s)" + className + "(s|$)"), node = [];
    
        if (arguments.length === 1) {
            //只傳入className
            tagName = "*";
            parent = document;
    
        } else if (arguments.length === 2 && tagName.constructor === "String") {
            //傳入ClassName和節(jié)點類型
            parent = document;
    
        } else if (arguments.length === 2 && tagName.constructor !== "String") {
            //傳入ClassName和父親節(jié)點
            tagName = "*"
    
        } else if (arguments.length === 3) {
            //傳入ClassName和節(jié)點類型以及父親節(jié)點
        }
    
        var nodebyTag = parent.getElementsByTagName(tagName);
    
        for (var i = 0; i < nodebyTag.length; i++) {
    
            if (re.test(nodebyTag[i].className)) {
                node.push(nodebyTag[i]);
            }
        }
    
        return node;
    
    }
    

    代碼來源:https://gist.github.com/hehongwei44/d608126f5b3407220932

    通過原型拓展來實現(xiàn)DOM的查找方法。
    //查找相關(guān)元素的前一個兄弟元素的方法。
    HTMLElement.prototype.prev = function () {
        var elem = this;
        do {
            elem = elem.previousSibling;
        } while (elem && elem.nodeType != 1);
    
        return elem;
    };
    
    //查找相關(guān)元素的下一個兄弟元素的方法。
    HTMLElement.prototype.next = function () {
        var elem = this;
    
        do {
            elem = elem.nextSibling;
        } while (elem && elem.nodeType != 1);
    
        return elem;
    };
    
    //查找元素第一個子元素的方法。
    HTMLElement.prototype.first = function () {
        var elem = this.firstChild;
        //文本節(jié)點
        if(elem && elem.nodeType != 1){
            do {
                elem = elem.nextSibling;
            } while (elem && elem.nodeType != 1);
        }
    
        return elem;
    };
    
    //查找元素的最后一個子元素的方法。
    HTMLElement.prototype.last = function () {
        var elem = this.lastChild;
    
        do {
            elem = elem.previousSibling;
        } while (elem && elem.nodeType != 1);
    
        return elem;
    };
    
    //查找元素指定層級的父元素。
    HTMLElement.prototype.parent = function (num){
        var elem = this;
        num = num || 1;
        for( var i = 0; i < num; i++)
            if(elem != null) elem = elem.parentNode;
        return elem;
    };
    

    代碼來源:https://gist.github.com/hehongwei44/7614a218810410b31ff4

    dom一些常用的操作方法介紹
    //查找相關(guān)元素的前一個兄弟元素的方法。
    function prev(elem) {
        do {
            elem = elem.previousSibling;
        } while (elem && elem.nodeType != 1);
    
        return elem;
    }
    //查找相關(guān)元素的下一個兄弟元素的方法。
    function next(elem) {
        do {
            elem = elem.nextSibling;
        } while (elem && elem.nodeType != 1);
    
        return elem;
    }
    //查找元素第一個子元素的方法。
    function first(elem) {
        elem = elem.firstChild;
    
        return (elem && elem.nodeType != 1) ? next(elem) : elem;
    }
    //查找元素的最后一個子元素的方法。
    function last(elem) {
        elem = elem.lastChild;
    
        return (elem && elem.nodeType != 1) ? prev(elem) : elem;
    }
    //查找元素指定層級的父元素。
    function parent(elem, num){
        num = num || 1;
        for( var i = 0; i < num; i++)
            if(elem != null) elem = elem.parentNode;
        return elem;
    }
    

    代碼來源:https://gist.github.com/hehongwei44/11e82b38b00aa63b0876

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

    轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/87692.html

    相關(guān)文章

    • JavaScript常用腳本集錦2

      摘要:把中的偽數(shù)組轉(zhuǎn)換為真數(shù)組在中,函數(shù)中的隱藏變量和用獲得的元素集合都不是真正的數(shù)組,不能使用等方法,在有這種需要的時候只能先轉(zhuǎn)換為真正的數(shù)組。檢測元素是否支持某個屬性代碼用法創(chuàng)建和使用命名空間使用方式 把JavaScript中的偽數(shù)組轉(zhuǎn)換為真數(shù)組 在 JavaScript 中, 函數(shù)中的隱藏變量 arguments 和用 getElementsByTagName 獲得的元素集合(Nod...

      xialong 評論0 收藏0
    • JavaScript常用腳本集錦3

      通過數(shù)組,拓展字符串拼接容易導(dǎo)致性能的問題 function StringBuffer() { this.__strings__ = new Array(); } StringBuffer.prototype.append = function (str) { this.__strings__.push(str); return this; } StringBuffer....

      dack 評論0 收藏0
    • JavaScript常用腳本集錦6

      摘要:它會指出一個類是繼承自另一個類的。測試測試代碼來源頁面倒計時的一段運用倒計時的一段腳本。截止日期符合日期格式,比如等有效日期。截止的天數(shù)小時分鐘秒數(shù)組成的對象。 清楚節(jié)點內(nèi)的空格 function cleanWhitespace(element) { //如果不提供參數(shù),則處理整個HTML文檔 element = element || document; //...

      Acceml 評論0 收藏0
    • JavaScript常用腳本集錦1

      摘要:初始化參數(shù)可選參數(shù),必填參數(shù)可選,只有在請求時需要參數(shù)可選回調(diào)函數(shù)可選參數(shù)可選,默認為參數(shù)可選,默認為創(chuàng)建引擎對象打開發(fā)送普通文本接收文檔將字符串轉(zhuǎn)換為對象最后,說明一下此函數(shù)的用法。即等待與成功回調(diào),后標志位置為。 jquery限制文本框只能輸入數(shù)字 jquery限制文本框只能輸入數(shù)字,兼容IE、chrome、FF(表現(xiàn)效果不一樣),示例代碼如下: $(input).keyup(...

      ygyooo 評論0 收藏0
    • JavaScript常用腳本集錦8

      摘要:進制為代碼來源通過標簽解析通過標簽解析標簽參數(shù)是字符串,解析的目標通過測試創(chuàng)建一個標簽將賦值給標簽的屬性。協(xié)議主機名稱端口查詢字符串查詢參數(shù)文件名哈希參數(shù)路徑相對路徑路徑片段代碼來源 圖片預(yù)加載 // 更新: // 05.27: 1、保證回調(diào)執(zhí)行順序:error > ready > load;2、回調(diào)函數(shù)this指向img本身 // 04-02: 1、增加圖片完全加載后的回調(diào) 2、提...

      blankyao 評論0 收藏0

    發(fā)表評論

    0條評論

    最新活動
    閱讀需要支付1元查看
    <