javascript DOM操作

來源:互聯網
上載者:User
1.建立節點
createElement()方法按照給定的標籤名建立一個新的元素節點,它的nodeType屬性值為1。
createTextNode()方法將建立一個包含著給定文本的新文本節點,它的nodeType屬性值為3.
傳回值是一個指向建立節點的引用指標。
var para = document.createElement("p");
var message = document.createTextNode("hello world");
para.appendChild(message);
document.body.appendChild(para);

2.複製節點
cloneNode()方法將為給定的節點建立一個副本。這個方法的傳回值是一個指向新複製節點的引用指標。
這個方法只有一個布爾類型的參數,它的可取值只能是true或false。參數是true時新節點將包含著與被複製節點完全一樣的子節點。如果這個參數值
是false,新節點將不包含任何子節點——如果被複製節點是一個元素節點,這意味著包含在被被複製節點裡的所有文本將不會被複製,但屬性節點將被複製:
var para = document.createElement("p");
var newpara = para.cloneNode(true);
var newpara2=para.cloneNode(false);

3.插入節點
appendChild()方法給元素節點追加一個子節點,它的傳回值是一個指向新增子節點的引用指標。
var para = document.createElement("p");
var message = document.createTextNode("hello world");
para.appendChild(message);
document.body.appendChild(para);
insertBefore()方法將一個給定節點插入到一個給定原屬節點的給定子節點前面,它的傳回值是一個指向新增子節點的引用指標:
reference = element.insertBefore(newNode,targetNode);
insertBefore()方法不僅可以用來插入新建立的元素,還可以用來挪動文檔中的現有節點。
var container = document.getElementById("content");
var message = document.getElementById("fineprint");
var annoncement = document.getElementById("headline");
container.insertBefore(annoncement,message);
headline先被刪除,然後再被重新插入到content元素所包含的fineprint元素的前面。

4.刪除節點
removeChild()方法將從一個給定元素裡刪除一個子節點,它的傳回值是一個已經被刪除的子節點的引用指標:
reference = element.removeChild(node);

var container = document.getElementById("content");
var message = document.getElementById("fineprint");
container.removeChild(message);
如果想刪除某個節點,不知道它的父節點是哪一個,parentNode屬性可以幫上忙:
var message = document.getElementById("fineprint");
var container = message.parentNode;
container.removeChild(message);

5.替換節點
replaceChild()方法將把一個給定父元素裡的一個子節點替換為另一個子節點,它的傳回值是一個指向已被替換的那個子節點的引用指標:
reference = element.replaceChild(newChild,oldChild)

var container = document.getElementById("content");
var message = document.getElementById("fineprint");
var para = document.createElement("p");
container.replaceChild(para,message);

replaceChild()方法也可以用文檔樹上的現有節點去替換另一個現有節點。
var container = document.getElementById("content");
var message = document.getElementById("fineprint");
var announcement = document.getElementById("headline");
container.replaceChild(announcement,message);
headline替換掉fineprint

var container = document.getElementById("content");
var message = document.getElementById("fineprint");
var announcement = document.getElementById("headline");
var oldmessage = container.replaceChild(announcement,message);
container.appendChild(oldmessage);
headline替換掉fineprint,把fineprint重新再插入content

6.設定屬性節點
setAttribute()方法為給定元素節點添加一個新的屬性值或是改變它的現有屬性值:
element.setAttribute(attributeName,attributeValue)

var para = document.createElement("p");
para.setAttribute("id","fineprint");
var container = document.getElementById("content");
container.appendChild(para);

刪除屬性
element.removeAttribute("href");

7.尋找節點
getAttribute()方法將返回一個給定元素的一個給定屬性的節點的值:
attributeValue = element.getAttribute(attributeName)
getElementById()方法的用途是尋找一個有著給定id屬性值的元素,該方法返回的元素節點是一個對象,這個對象有nodeName、nodeType、parentNode、childNodes等屬性。
element = document.getElementById(ID)
getElementsByTagName()方法的用途是尋找有著給定標籤名的所有元素:
elements = document.getElementsByTagName(tagName)
這個方法將返回一個節點集合,這個集合可以當作一個數組來處理。這個集合的length屬性等於當前文檔裡有著給定標籤名的所有元素的總個數。這個數組裡的每個元素都是
一個對象,它們都有著nodeName、nodeType、parentNode、childNodes等屬性。
hasChildNodes方法可用來檢查一個給定元素是否有子節點:
blooleanValue = element.hasChildNodes
這個方法將返回一個布爾值true或false。

DOM屬性
1.nodeName屬性返回一個字串,其內容是給定節點的名字:
name = node.nodeName

2.nodeType屬性返回一個整數,這個數值代表著給定節點的類型:
integer = node.nodeType

3.nodeValue屬性將返回給定節點的當前值:
value = node.nodeValue

遍曆節點樹
1.childNodes屬性將返回一個數組,這個數組由給定元素節點的子節點構成:
nodeList = node.childNodes

2.firstChild屬性將返回一個給定元素節點的第一個子節點:
reference = node.firstChild

3.lastChild屬性將返回一個給定元素節點的最後一個子節點:
referance = node.lastChild

4.nextSibling屬性將返回一個給定節點的下一個子節點
referance = node.nextSibling

5.parentNode 屬性將返回一個給定節點的父節點:
referance = node.parentNode

6.previousSibling屬性將返回一個給定節點的前一個子節點
referance = node.previousSibling

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.