摘要:類型對(duì)象是的一個(gè)實(shí)例,表示整個(gè)頁面,而且,對(duì)象是對(duì)象的一個(gè)屬性,因此可以將其作為全局對(duì)象來訪問。刪除指定位置的行。創(chuàng)建創(chuàng)建創(chuàng)建第一行創(chuàng)建第二行將表格添加到文檔主體中
DOM 節(jié)點(diǎn)層次 Node類型
DOM1級(jí)定義了一個(gè)Node接口,該接口將由DOM中的所有節(jié)點(diǎn)類型實(shí)現(xiàn)
節(jié)點(diǎn)類型由在Node類型中定義的12個(gè)數(shù)值常量來表示,任何節(jié)點(diǎn)類型必居其一
Node.ELEMENT_NODE();
Node.ATTRIBUTE_NODE();
Node.TEXT_NODE();
Node.CDATA_SECTION_NODE();
Node.ENTITY_REFERENCE_NODE();
Node.ENTITY_NODE();
Node.PROCESSING_INSTRUCTION_NODE();
Node.COMMENT_NODE();
Node.DOCUMENT_NODE();
Node.DOCUMENT_TYPE_NODE();
Node.DOCUMENT_FRAGMENT_NODE();
Node.NOTATION_NODE();
使用nodeName和nodeValue檢測(cè)節(jié)點(diǎn)類型
節(jié)點(diǎn)關(guān)系,保存NodeList對(duì)象,是一種數(shù)組對(duì)象,用于保存一組有序的節(jié)點(diǎn),可以通過位置來訪問這些節(jié)點(diǎn)。
childNodes
var firstChild=someNode.childNodes(); var secondChild=someNode.childNodes.item(); var count=someNode.childNodes.length();
parentNode,每個(gè)節(jié)點(diǎn)都有parentNode屬性,屬性指向文檔樹的節(jié)點(diǎn),包含在childNodes列表中的所有節(jié)點(diǎn)都具有相同的父節(jié)點(diǎn),因此它們的parentNode屬性都指向同一個(gè)節(jié)點(diǎn)。此外包含在childNodes列表中的每個(gè)節(jié)點(diǎn)相互之間都是同胞節(jié)點(diǎn)。
通過使用列表中每個(gè)節(jié)點(diǎn)的previousSibling和nextSibling屬性可以訪問同一列表中的其他節(jié)點(diǎn)。列表中第一個(gè)節(jié)點(diǎn)的previousSibling屬性值為null,而列表中最后一個(gè)節(jié)點(diǎn)nextSibling屬性的值同樣也為null
父節(jié)點(diǎn)的firstChild和lastChild屬性分別指向childNodes列表中的第一個(gè)和最后一個(gè)節(jié)點(diǎn)。
操作節(jié)點(diǎn)
appendChild(),向childNodes列表的末尾添加一個(gè)節(jié)點(diǎn)。添加節(jié)點(diǎn)之后,childNodes的新曾節(jié)點(diǎn)、父節(jié)點(diǎn)以及以前的最后一個(gè)子節(jié)點(diǎn)的關(guān)系都會(huì)相應(yīng)地得到更新
//someNode 有多個(gè)子節(jié)點(diǎn) var returnedNode = someNode.appendChild(someNode.firstChild); alert(returnedNode == someNode.firstChild); //false alert(returnedNode == someNode.lastChild); //true
insertBefore(),把節(jié)點(diǎn)放在childNodes列表中某個(gè)特定的位置上。接收兩個(gè)參數(shù),要插入的點(diǎn)和作為參照的節(jié)點(diǎn)
//插入后成為最后一個(gè)子節(jié)點(diǎn) returnedNode = someNode.insertBefore(newNode, null); alert(newNode == someNode.lastChild); //true //插入后成為第一個(gè)子節(jié)點(diǎn) var returnedNode = someNode.insertBefore(newNode, someNode.firstChild); alert(returnedNode == newNode); //true alert(newNode == someNode.firstChild); //true //插入到最后一個(gè)子節(jié)點(diǎn)前面 returnedNode = someNode.insertBefore(newNode, someNode.lastChild); alert(newNode == someNode.childNodes[someNode.childNodes.length-2]); //true
replaceChild(),替換節(jié)點(diǎn)。接收兩個(gè)參數(shù),要插入的節(jié)點(diǎn)和要替換的節(jié)點(diǎn),要替換的節(jié)點(diǎn)將由這個(gè)方法返回并從文檔樹中移除,同時(shí)由要插入的節(jié)點(diǎn)占據(jù)其位置
//替換第一個(gè)子節(jié)點(diǎn) var returnedNode = someNode.replaceChild(newNode, someNode.firstChild); //替換最后一個(gè)子節(jié)點(diǎn) returnedNode = someNode.replaceChild(newNode, someNode.lastChild);
removeChild(),移除節(jié)點(diǎn),接收一個(gè)參數(shù),即要移除的節(jié)點(diǎn)。
//移除第一個(gè)子節(jié)點(diǎn) var formerFirstChild = someNode.removeChild(someNode.firstChild); //移除最后一個(gè)子節(jié)點(diǎn) var formerLastChild = someNode.removeChild(someNode.lastChild);
cloneNode(),接收一個(gè)布爾值參數(shù),表示是否執(zhí)行深復(fù)制,在參數(shù)為true的情況下,執(zhí)行深復(fù)制,也就是復(fù)制節(jié)點(diǎn)及其整個(gè)子節(jié)點(diǎn)樹,在參數(shù)為false的情況下,執(zhí)行淺復(fù)制,即只復(fù)制節(jié)點(diǎn)本身。
Document類型
document對(duì)象是HTMLDocument的一個(gè)實(shí)例,表示整個(gè)HTML頁面,而且,document對(duì)象是window對(duì)象的一個(gè)屬性,因此可以將其作為全局對(duì)象來訪問。
nodeType值為9
nodeName值為"#document"
nodeValue值為null
parentNode值為null
ownerDocument值為null
document對(duì)象有一些標(biāo)準(zhǔn)的Document對(duì)象所沒有的屬性,這些屬性提供了document對(duì)象所表現(xiàn)的網(wǎng)頁的一些信息
//取得文檔標(biāo)題 var originalTitle = document.title; //設(shè)置文檔標(biāo)題 document.title = "New page title"; //取得完整的 URL var url = document.URL; //取得域名 var domain = document.domain; //取得來源頁面的 URL var referrer = document.referrer;
查找元素,getElementById()、getElementByTagName()和getElementByName()
特殊集合
document.anchors,包含文檔中所有帶name特性的元素
document.applets,包含文檔中所有的
document.forms,包含文檔中所有的