最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

常用DOM整理

 更新時(shí)間:2015年06月16日 10:14:35   投稿:hebedich  
js在操作DOM中存在著許多跨瀏覽器方面的坑,本文花了我將近一周的時(shí)間整理,我將根據(jù)實(shí)例整理那些大大小小的“坑”。

前言:

html為document搭建了一棵DOM樹,這棵樹就是有一系列Node節(jié)點(diǎn)所構(gòu)成的。他為我們定義了文檔的結(jié)構(gòu)。

Node類型:

Node.ELEMENT_NODE(1);      //元素節(jié)點(diǎn)較常用
Node.ATTRIBUTE_NODE(2);    //屬性節(jié)點(diǎn)較常用
Node.TEXT_NODE(3);          //文本節(jié)點(diǎn)較常用
Node.CDATA_SECTION_NODE(4);
Node.ENTITY_REFERENCE_NODE(5);
Node.ENTITY_NODE(6);
Node.PROCESSING_INSTRUCTION_NODE(7);
Node.COMMENT_NODE(8);
Node.DOCUMENT_NODE(9);   //文檔節(jié)點(diǎn)較常用
Node.DOCUMENT_TYPE_NODE(10);
Node.DOCUMENT_FRAGMENT_NODE(11);
Node.NOTATION_NODE(12);

相關(guān)函數(shù):

1、取得節(jié)點(diǎn):

 document.getElementById('element');
 document.getElementsByTagName('element');         返回類數(shù)組對(duì)象
 document.getElementsByName('element');            返回類數(shù)組對(duì)象
 document.getElementsByClassName('className')      返回類數(shù)組對(duì)象,IE7及以下并不支持;
 document.querySelectorAll('class' | 'element')    返回類數(shù)組對(duì)象

2、遍歷節(jié)點(diǎn)

 查找子節(jié)點(diǎn):element.childNodes        返回類數(shù)組對(duì)象
 查找第一個(gè)子節(jié)點(diǎn):element.firstChild
 查找最后一個(gè)子節(jié)點(diǎn):element.lastChild
 查找父元素:element.parentNode
 查找前一個(gè)兄弟元素: element.previousSibling
 查找后一個(gè)兄弟元素: element.nextSibling

3、獲取節(jié)點(diǎn)信息

 獲取元素或者屬性節(jié)點(diǎn)的標(biāo)簽名稱:elementNode.nodeName
 獲取文本節(jié)點(diǎn)的內(nèi)容:    textNode.nodeValue;
 獲取并設(shè)置元素節(jié)點(diǎn)的內(nèi)容(可能會(huì)包含HTML標(biāo)簽):  elementNode.innerHTML
 獲取并設(shè)置元素節(jié)點(diǎn)的純文本內(nèi)容:element.innerText(IE) | element.textContent(FF) 
 獲取屬性節(jié)點(diǎn)的值:      attrNode.getAttribute(AttrName);
 設(shè)置屬性節(jié)點(diǎn)的值:      attrNode.setAttribute(AttrName,AttrValue);
 獲取節(jié)點(diǎn)的類型:        node.nodeType;
  元素節(jié)點(diǎn): 1;
  屬性節(jié)點(diǎn): 2;
  文本節(jié)點(diǎn): 3;
  文檔節(jié)點(diǎn): 9;
  注釋節(jié)點(diǎn): 8;

4、操作節(jié)點(diǎn)

 創(chuàng)建元素節(jié)點(diǎn):       document.createElement('element');
 創(chuàng)建文本節(jié)點(diǎn):       document.createTextNode('text');
 創(chuàng)建屬性節(jié)點(diǎn):       document.createAttribute('attribute');
 刪除節(jié)點(diǎn):               node.remove();
 刪除子節(jié)點(diǎn):           parentNode.removeChild(childNode);
 插入節(jié)點(diǎn):               parentNode.appendChild(childNode);  //插入到父節(jié)點(diǎn)的尾部
                             parentNode.insertBefore(newNode,existingNode)  //插入到已存在節(jié)點(diǎn)的前面;
 克隆節(jié)點(diǎn):               node.cloneNode([true])     //傳入true為深度復(fù)制
 替換節(jié)點(diǎn):               parentNode.replaceChild(newNode,oldNode);

相關(guān)拓展:

1、由于IE低版本瀏覽器和其他瀏覽器在處理DOM中存在不兼容,因此要做一些簡(jiǎn)單的封裝處理。

 
//=================
function getElementChildren(element) {
   var children = [],
   oldChildNodes = element.childNodes;
   for(var i=0, len=oldChildNodes.length; i<len; i+=1) {
     if(oldChildNodes[i].nodeType == 1) {
        children.push(oldChildNodes[i]);
     }
   }
 return children;
}
 
//==================
function getElementNext(element) {
   var next = element.nextSibling || null;
     if(next) {
       if(next.nodeType == 1) {
          return next;
       } else {
          return arguments.callee(next);
       }
     } else {
     throw new Error("下一個(gè)兄弟元素不存在!");
     }
}
 
//======================
function getElementPrev(element) {
   var prev = element.previousSibling || null;
   if(prev) {
     if(prev.nodeType == 1) {
       return prev;
     } else {
       return arguments.callee(prev);
     }
   } else {
     throw new Error("上一個(gè)兄弟元素不存在!");
   }
}
 

2、操作DOM元素的樣式
 

//=========================
function getElementStyle(element,styleName) {
   if(typeof getComputedStyle != 'undefined') {
     return getComputedStyle(element,null)[styleName];
   } else {
     return element.currentStyle[styleName];
   }
}
 
//==========================
function addClass(element,className) {
   element.className += className;
}
 
//==========================
function removeClass(element,removeClassName) {
   var classStr = element.className;
   element.className = classStr.replace(removeClassName,'').split(/\s+/).join(' ').replace(/^\s+/,'').replace(/\s+$/,'');
}

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • JS圖片輪播與索引變色功能實(shí)例詳解

    JS圖片輪播與索引變色功能實(shí)例詳解

    本文通過實(shí)例代碼給大家介紹了JS圖片輪播與索引變色功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-07-07
  • JS生成一維碼(條形碼)功能示例

    JS生成一維碼(條形碼)功能示例

    這篇文章主要介紹了JS生成一維碼(條形碼)功能,結(jié)合完整實(shí)例形式分析了JS插件生成條形碼的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • js原生實(shí)現(xiàn)FastClick事件的實(shí)例

    js原生實(shí)現(xiàn)FastClick事件的實(shí)例

    下面小編就為大家?guī)硪黄猨s原生實(shí)現(xiàn)FastClick事件的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • 一文詳解前端進(jìn)階之IntersectionObserver

    一文詳解前端進(jìn)階之IntersectionObserver

    這篇文章主要為大家介紹了前端進(jìn)階之IntersectionObserver示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • JS組件Bootstrap Table使用實(shí)例分享

    JS組件Bootstrap Table使用實(shí)例分享

    這篇文章主要為大家詳細(xì)介紹了JS組件Bootstrap Table分頁使用方法,具有一定的實(shí)用性,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 前端使用cookie的兩種方式詳細(xì)講解

    前端使用cookie的兩種方式詳細(xì)講解

    這篇文章主要介紹了前端使用cookie的兩種方式,分別是通過瀏覽器自動(dòng)管理和通過JavaScript顯式操作,文章詳細(xì)講解了如何設(shè)置、讀取和刪除Cookie,并強(qiáng)調(diào)了安全性問題,需要的朋友可以參考下
    2025-02-02
  • Layui實(shí)現(xiàn)多條件查詢的示例代碼

    Layui實(shí)現(xiàn)多條件查詢的示例代碼

    本文主要介紹了Layui實(shí)現(xiàn)多條件查詢,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 支付寶小程序從手動(dòng)埋點(diǎn)到自動(dòng)埋點(diǎn)的實(shí)現(xiàn)過程

    支付寶小程序從手動(dòng)埋點(diǎn)到自動(dòng)埋點(diǎn)的實(shí)現(xiàn)過程

    埋點(diǎn)的意思是在你想要的數(shù)據(jù)節(jié)點(diǎn)出進(jìn)行設(shè)置,可以方便進(jìn)行采集,下面這篇文章主要給大家介紹了關(guān)于支付寶小程序從手動(dòng)埋點(diǎn)到自動(dòng)埋點(diǎn)的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • JS定時(shí)器實(shí)例

    JS定時(shí)器實(shí)例

    在javascritp中,有兩個(gè)關(guān)于定時(shí)器的專用函數(shù)
    2013-04-04
  • JS實(shí)現(xiàn)可拖曳、可關(guān)閉的彈窗效果

    JS實(shí)現(xiàn)可拖曳、可關(guān)閉的彈窗效果

    這篇文章主要介紹了JS實(shí)現(xiàn)可拖曳、可關(guān)閉的彈窗效果,可實(shí)現(xiàn)點(diǎn)擊文字彈出可拖動(dòng)的窗口,同時(shí)背景出現(xiàn)變暗的遮罩效果,點(diǎn)擊遮罩層即可關(guān)閉彈出,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09

最新評(píng)論

景德镇市| 山阴县| 成武县| 万全县| 彩票| 麻阳| 吴川市| 大悟县| 河北区| 邛崃市| 定陶县| 荔波县| 英山县| 贡嘎县| 灯塔市| 浦城县| 永川市| 彝良县| 伊川县| 萨迦县| 比如县| 阿合奇县| 延吉市| 措勤县| 铜梁县| 镇康县| 湖南省| 苍梧县| 上蔡县| 青田县| 福清市| 苏尼特左旗| 周宁县| 周口市| 乌海市| 连山| 姚安县| 普安县| 鄢陵县| 海阳市| 阳原县|