摘要:代碼來(lái)源一些常用的操作方法介紹查找相關(guān)元素的前一個(gè)兄弟元素的方法。查找元素指定層級(jí)的父元素。
DOM操作的增強(qiáng)版功能函數(shù)
/** * 將一個(gè)DOM節(jié)點(diǎn)、HTML字符串混合型參數(shù) * 轉(zhuǎn)化為原生的DOM節(jié)點(diǎn)數(shù)組 * * */ function checkElem(a) { var r = []; if (a.constructor != Array) { //如果不是參數(shù)數(shù)組,則強(qiáng)行轉(zhuǎn)換 a = [a]; } for (var i = 0; i < a.length; i++) { //如果是字符串,例如"
代碼來(lái)源: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é)點(diǎn). 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:該方法處理很獨(dú)特,值得借鑒 * */ if(elem == null) { elem = before; before = parent; parent = before.parent; } parent.insertBefore(checkElem(elem),before); } //為parent追加一個(gè)子元素的輔助函數(shù) function append(parent, elem){ parent.appendChild(elem); }
代碼來(lái)源:https://gist.github.com/hehongwei44/b449b9081b00bc1dc6ac
檢查元素是否有一個(gè)指定的特性/*檢查元素是否有一個(gè)指定的特性*/ function hasAttribute(elem, name) { // !!表達(dá)式快速的求bool值 return !!elem.getAttribute(name); }
代碼來(lái)源: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; }
代碼來(lái)源:https://gist.github.com/hehongwei44/08429d872a5f19ca7d6b
簡(jiǎn)單的DOM的API封裝/*根據(jù)ID獲取元素*/ var $id = function(id){ return document.getElementById(id); }; /*根據(jù)標(biāo)簽名獲取元素,返回元素的節(jié)點(diǎn)偽數(shù)組*/ var $tag = function(tagName, parent){ return (parent || document).getElementsByTagName(tagName); }; /*根據(jù)樣式名獲取元素,返回元素的節(jié)點(diǎn)數(shù)組。其中className是必填項(xiàng)目*/ var $class = function (className, tagName, parent) { //元素可能存在多個(gè)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é)點(diǎn)類型 parent = document; } else if (arguments.length === 2 && tagName.constructor !== "String") { //傳入ClassName和父親節(jié)點(diǎn) tagName = "*" } else if (arguments.length === 3) { //傳入ClassName和節(jié)點(diǎn)類型以及父親節(jié)點(diǎn) } 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; }
代碼來(lái)源:https://gist.github.com/hehongwei44/d608126f5b3407220932
通過(guò)原型拓展來(lái)實(shí)現(xiàn)DOM的查找方法。//查找相關(guān)元素的前一個(gè)兄弟元素的方法。 HTMLElement.prototype.prev = function () { var elem = this; do { elem = elem.previousSibling; } while (elem && elem.nodeType != 1); return elem; }; //查找相關(guān)元素的下一個(gè)兄弟元素的方法。 HTMLElement.prototype.next = function () { var elem = this; do { elem = elem.nextSibling; } while (elem && elem.nodeType != 1); return elem; }; //查找元素第一個(gè)子元素的方法。 HTMLElement.prototype.first = function () { var elem = this.firstChild; //文本節(jié)點(diǎn) if(elem && elem.nodeType != 1){ do { elem = elem.nextSibling; } while (elem && elem.nodeType != 1); } return elem; }; //查找元素的最后一個(gè)子元素的方法。 HTMLElement.prototype.last = function () { var elem = this.lastChild; do { elem = elem.previousSibling; } while (elem && elem.nodeType != 1); return elem; }; //查找元素指定層級(jí)的父元素。 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; };
代碼來(lái)源:https://gist.github.com/hehongwei44/7614a218810410b31ff4
dom一些常用的操作方法介紹//查找相關(guān)元素的前一個(gè)兄弟元素的方法。 function prev(elem) { do { elem = elem.previousSibling; } while (elem && elem.nodeType != 1); return elem; } //查找相關(guān)元素的下一個(gè)兄弟元素的方法。 function next(elem) { do { elem = elem.nextSibling; } while (elem && elem.nodeType != 1); return elem; } //查找元素第一個(gè)子元素的方法。 function first(elem) { elem = elem.firstChild; return (elem && elem.nodeType != 1) ? next(elem) : elem; } //查找元素的最后一個(gè)子元素的方法。 function last(elem) { elem = elem.lastChild; return (elem && elem.nodeType != 1) ? prev(elem) : elem; } //查找元素指定層級(jí)的父元素。 function parent(elem, num){ num = num || 1; for( var i = 0; i < num; i++) if(elem != null) elem = elem.parentNode; return elem; }
代碼來(lái)源:https://gist.github.com/hehongwei44/11e82b38b00aa63b0876
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/87692.html
摘要:把中的偽數(shù)組轉(zhuǎn)換為真數(shù)組在中,函數(shù)中的隱藏變量和用獲得的元素集合都不是真正的數(shù)組,不能使用等方法,在有這種需要的時(shí)候只能先轉(zhuǎn)換為真正的數(shù)組。檢測(cè)元素是否支持某個(gè)屬性代碼用法創(chuàng)建和使用命名空間使用方式 把JavaScript中的偽數(shù)組轉(zhuǎn)換為真數(shù)組 在 JavaScript 中, 函數(shù)中的隱藏變量 arguments 和用 getElementsByTagName 獲得的元素集合(Nod...
通過(guò)數(shù)組,拓展字符串拼接容易導(dǎo)致性能的問(wèn)題 function StringBuffer() { this.__strings__ = new Array(); } StringBuffer.prototype.append = function (str) { this.__strings__.push(str); return this; } StringBuffer....
摘要:它會(huì)指出一個(gè)類是繼承自另一個(gè)類的。測(cè)試測(cè)試代碼來(lái)源頁(yè)面倒計(jì)時(shí)的一段運(yùn)用倒計(jì)時(shí)的一段腳本。截止日期符合日期格式,比如等有效日期。截止的天數(shù)小時(shí)分鐘秒數(shù)組成的對(duì)象。 清楚節(jié)點(diǎn)內(nèi)的空格 function cleanWhitespace(element) { //如果不提供參數(shù),則處理整個(gè)HTML文檔 element = element || document; //...
摘要:初始化參數(shù)可選參數(shù),必填參數(shù)可選,只有在請(qǐng)求時(shí)需要參數(shù)可選回調(diào)函數(shù)可選參數(shù)可選,默認(rèn)為參數(shù)可選,默認(rèn)為創(chuàng)建引擎對(duì)象打開(kāi)發(fā)送普通文本接收文檔將字符串轉(zhuǎn)換為對(duì)象最后,說(shuō)明一下此函數(shù)的用法。即等待與成功回調(diào),后標(biāo)志位置為。 jquery限制文本框只能輸入數(shù)字 jquery限制文本框只能輸入數(shù)字,兼容IE、chrome、FF(表現(xiàn)效果不一樣),示例代碼如下: $(input).keyup(...
摘要:進(jìn)制為代碼來(lái)源通過(guò)標(biāo)簽解析通過(guò)標(biāo)簽解析標(biāo)簽參數(shù)是字符串,解析的目標(biāo)通過(guò)測(cè)試創(chuàng)建一個(gè)標(biāo)簽將賦值給標(biāo)簽的屬性。協(xié)議主機(jī)名稱端口查詢字符串查詢參數(shù)文件名哈希參數(shù)路徑相對(duì)路徑路徑片段代碼來(lái)源 圖片預(yù)加載 // 更新: // 05.27: 1、保證回調(diào)執(zhí)行順序:error > ready > load;2、回調(diào)函數(shù)this指向img本身 // 04-02: 1、增加圖片完全加載后的回調(diào) 2、提...
閱讀 3777·2023-04-26 00:56
閱讀 2779·2021-09-30 10:01
閱讀 1057·2021-09-22 15:30
閱讀 4003·2021-09-07 10:21
閱讀 1670·2021-09-02 15:40
閱讀 2871·2021-08-30 09:47
閱讀 1336·2021-08-16 10:57
閱讀 1932·2019-08-30 14:01