首頁 web前端 js教程 常用DOM整理_javascript技巧

常用DOM整理_javascript技巧

May 16, 2016 pm 03:54 PM
dom 常用

前言:

html為document搭建了一棵DOM樹,這棵樹就是有一系列Node節點所構成的。他為我們定義了文檔的結構。

Node型別:

Node.ELEMENT_NODE(1);      //元素節點較常用
Node.ATTRIBUTE_NODE(2);    //屬性節點較常用
Node.TEXT_NODE(3);          //文字節點較常用
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);   //文件節點較常用
Node.DOCUMENT_TYPE_NODE(10);
Node.DOCUMENT_FRAGMENT_NODE(11);
Node.NOTATION_NODE(12);

相關函數:

1、取得節點:

 document.getElementById('element');
 document.getElementsByTagName('element');         傳回類別陣列物件
 document.getElementsByName('element');            傳回類別陣列物件
 document.getElementsByClassName('className')      返回類別數組物件,IE7及以下並不支援;
 document.querySelectorAll('class' | 'element')    傳回類別數組物件

2、遍歷節點

 查找子節點:element.childNodes        傳回類別陣列物件
 找出第一個子節點:element.firstChild
 找出最後一個子節點:element.lastChild
 查找父元素:element.parentNode
 找出前一個兄弟元素: element.previousSibling
 找出後一個兄弟元素: element.nextSibling

3、取得節點資訊

 取得元素或屬性節點的標籤名稱:elementNode.nodeName
 取得文字節點的內容:    textNode.nodeValue;
 取得並設定元素節點的內容(可能會包含HTML標籤):  elementNode.innerHTML
 取得並設定元素節點的純文字內容:element.innerText(IE) | element.textContent(FF) 
 取得屬性節點的值:      attrNode.getAttribute(AttrName);
 設定屬性節點的值:      attrNode.setAttribute(AttrName,AttrValue);
 取得節點的類型:        node.nodeType;
  元素節點: 1;
  屬性節點: 2;
  文字節點: 3;
  文件節點: 9;
  註解節點: 8;

4、操作節點

 建立元素節點:       document.createElement('element');
 建立文字節點:       document.createTextNode('text');
 建立屬性節點:       document.createAttribute('attribute');
 刪除節點:               node.remove();
 刪除子節點:           parentNode.removeChild(childNode);
 插入節點:               parentNode.appendChild(childNode);  //插入父節點的尾端
                              複製節點:               node.cloneNode([true])     //傳入true為深度複製
 替換節點:               parentNode.replaceChild(newNode,oldNode);

相關拓展:


1、由於IE低版本瀏覽器和其他瀏覽器在處理DOM中存在不相容,因此要做一些簡單的封裝處理。


 
//=================
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("下一个兄弟元素不存在!");
     }
}
 
//======================
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("上一个兄弟元素不存在!");
   }
}
 
登入後複製
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+$/,'');
}
登入後複製
以上所述就是本文的全部內容了,希望大家能夠喜歡。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Vue3取得DOM節點的方式有哪些 Vue3取得DOM節點的方式有哪些 May 11, 2023 pm 04:55 PM

Vue3取得DOM節點的方式有哪些

PHP中的DOM操作指南 PHP中的DOM操作指南 May 21, 2023 pm 04:01 PM

PHP中的DOM操作指南

vue dom是什麼意思啊 vue dom是什麼意思啊 Dec 20, 2022 pm 08:41 PM

vue dom是什麼意思啊

Spring註解大揭秘:常用註解解析 Spring註解大揭秘:常用註解解析 Dec 30, 2023 am 11:28 AM

Spring註解大揭秘:常用註解解析

學習canvas框架 詳解常用的canvas框架 學習canvas框架 詳解常用的canvas框架 Jan 17, 2024 am 11:03 AM

學習canvas框架 詳解常用的canvas框架

15個常用的幣圈逃頂指標技術分析 15個常用的幣圈逃頂指標技術分析 Mar 03, 2025 pm 05:48 PM

15個常用的幣圈逃頂指標技術分析

vue3中ref綁定dom或元件失敗的原因為何及怎麼解決 vue3中ref綁定dom或元件失敗的原因為何及怎麼解決 May 12, 2023 pm 01:28 PM

vue3中ref綁定dom或元件失敗的原因為何及怎麼解決

dom和bom物件有哪些 dom和bom物件有哪些 Nov 13, 2023 am 10:52 AM

dom和bom物件有哪些

See all articles