摘要:添加節(jié)點(diǎn)后,的新增節(jié)點(diǎn)父節(jié)點(diǎn)及以前的最后一個(gè)子節(jié)點(diǎn)的關(guān)系指針都會(huì)相應(yīng)地得到更新。插入后成為最后一個(gè)子節(jié)點(diǎn)插入后成為第一個(gè)節(jié)點(diǎn)插入到最后一個(gè)子節(jié)點(diǎn)前面接受兩個(gè)參數(shù),要插入的節(jié)點(diǎn)和要替換的節(jié)點(diǎn)只移除而非替換節(jié)點(diǎn)。
Node類型
nodeType
以下是一些重要的nodeType的取值:
1: 元素element
2: 屬性attr
3: 文本text
8: 注釋comments
9: 文檔document
nodeName,nodeValue
節(jié)點(diǎn)關(guān)系childNodes: 每個(gè)節(jié)點(diǎn)都有一個(gè)childNodes屬性,其中保存著一個(gè)NodeList對象
firstChild: 等同于childNodes[0]
lastChild: 等同于childNodes.length-1
同時(shí)通過使用列表中每個(gè)節(jié)點(diǎn)的previousSibling和nextSibling屬性,可以訪問同一列表中的其他節(jié)點(diǎn)。
操作節(jié)點(diǎn)appendChild()
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)地得到更新。
insertBefore()
insertBefore()這個(gè)方法接受兩個(gè)參數(shù):要插入的節(jié)點(diǎn)和作為參照的節(jié)點(diǎn)。
// 插入后成為最后一個(gè)子節(jié)點(diǎn) returnedNode = someNode.insertBefore(newNode,null); // 插入后成為第一個(gè)節(jié)點(diǎn) returnedNode = someNode.insertBefore(newNode,someNode.firstChild); // 插入到最后一個(gè)子節(jié)點(diǎn)前面 returnedNode = someNode.insertBefore(newNode,someNode.lastChild);
repaceChild()
repaceChild()接受兩個(gè)參數(shù),要插入的節(jié)點(diǎn)和要替換的節(jié)點(diǎn)
var returnedNode = someNode.replaceChild(newNode,someNode.firstChild);
removeChild()
只移除而非替換節(jié)點(diǎn)。
var formerFirstChild = someNode.removeChild(someNode.firstChild);
cloneNode()
var deepList = myList.cloneNode(true); console.log(deepList.length); // 3 var shallowList = myList.cloneNode(false); console.log(shallowList.childNodes.length); //0Document類型
Document節(jié)點(diǎn)具有下列特征:
nodeType的值為9;
nodeName的值為#document;
nodeValue的值為null;
parentNode的值為null;
ownerDocument的值為null;
var html = document.documentElement; // 取得對的引用 console.log(html === document.childNodes[0]); // true console.log(html === document.firstChild); // true文檔信息
// 取得文檔的標(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; //假設(shè)頁面來自p2p.wrox.com域 document.domain = "wrox.com"; // 成功 document.domain = "nczonline.net"; // 失敗
在IE7中調(diào)用document.getElementById("myElement");結(jié)果會(huì)返回元素,如下所示;
最好的辦法是不讓表單字段的name特性與其他元素的ID相同。
特殊集合a div
document.anchors,包含文檔中所有帶name特性的a元素;
document.forms, 包含文檔中所有form元素,與document.getElementsByTagName("form")得到的結(jié)果相同;
document.images,包含文檔中所有的img元素,與document.getElementsByTagName("img")得到的結(jié)果相同;
document.links,包含文檔中所有帶href特性的a元素;
document.write() Example 3 ");
字符串不會(huì)被當(dāng)作外部script標(biāo)簽的關(guān)閉標(biāo)簽,因而頁面中也就不會(huì)出現(xiàn)多余的內(nèi)容了。
Element類型Element節(jié)點(diǎn)具有以下特征:
nodeType的值為1;
nodeName的值為元素的標(biāo)簽名;
nodeValue的值為null;
parentNode可能是Document或Element;
要訪問元素的標(biāo)簽名,可以使用nodeName屬性,也可以使用tagName屬性;
var div = document.getElementById("myDiv"); console.log(div.tagName); // DIV console.log(div.nodeName); // DIV if (element.tagName=="div") { // 不能這樣比較,很容易出錯(cuò) } if (element.tagName.toLowerCase =="div") { // 這樣最好(適用于任何文檔) }取得特性
操作特性的DOM方法主要有三個(gè),分別是getAttribute()、setAttribute()、removeAttribute();
注意,傳遞給getAttribute()的特性名與實(shí)際的特性名相同。印象要想得到class的特性值,應(yīng)該傳入"class"而不是"className"。
var div = document.getElementById("myDiv"); console.log(div.getAttribute("class")); // bd創(chuàng)建元素
使用document.createElement()方法可以創(chuàng)建新元素。
元素的子節(jié)點(diǎn)在執(zhí)行某項(xiàng)操作以前,通常都要先檢查一下nodeType屬性,如下面的例子所示:
for (var i=0; len = element.childNodes.length; iText類型 Text節(jié)點(diǎn)具有以下特征:
創(chuàng)建文本節(jié)點(diǎn)
nodeType的值為3;
nodeName的值為"#text";
nodeValue的值為節(jié)點(diǎn)所包含的文本;
parentNode是一個(gè)Element;可以使用document.createTextNode()創(chuàng)建新文本節(jié)點(diǎn)。
規(guī)范化文本節(jié)點(diǎn)normalize()
分割文本節(jié)點(diǎn)splitText()
Comment類型comment節(jié)點(diǎn)具有下列特征:
DOM操作技術(shù) 操作表格
nodeType的值為8;
nodeName的值為"#comment";
nodeValue的值是注釋的內(nèi)容;
parentNode可能是Document或Element;
不支持(沒有)子幾點(diǎn);// 創(chuàng)建 table var table = document.createElement("table"); table.border = 1; table.width = "100%"; // 創(chuàng)建tbody var tbody = document.createElement("tbody"); table.appendChild(tbody); // 創(chuàng)建第一行 tbody.insertRow(0); tbody.rows[0].insertCell(0); tbody.rows[0].cells[0].appendChild(document.createTextNode("cell 1,1")); tbody.rows[0].insertCell(1); tbody.rows[0].cells[1].appendChild(document.createTextNode("cell 2,1")); // 創(chuàng)建第二行 tbody.insertRow(01); tbody.rows[1].insertCell(0); tbody.rows[1].cells[0].appendChild(document.createTextNode("cell 1,2")); tbody.rows[1].insertCell(1); tbody.rows[1].cells[1].appendChild(document.createTextNode("cell 2,2")); document.body.appendChild(table);
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/85402.html
摘要:網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知識點(diǎn)羅列為主或是資料的匯總,數(shù)據(jù)量讓新人望而卻步。天了解一個(gè)前端框架。也可以關(guān)注微信公眾號曉舟報(bào)告,發(fā)送獲取資料,就能收到下載密碼,網(wǎng)盤地址在最下方,獲取教程和案例的資料。 前言 好的學(xué)習(xí)方法可以事半功倍,好的學(xué)習(xí)路徑可以指明前進(jìn)方向。這篇文章不僅要寫學(xué)習(xí)路徑,還要寫學(xué)習(xí)方法,還要發(fā)資料,干貨滿滿,準(zhǔn)備接招。 網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知...
摘要:由于計(jì)算機(jī)的國際化,組織的標(biāo)準(zhǔn)牽涉到很多其他國家,因此組織決定改名表明其國際性。規(guī)范由萬維網(wǎng)聯(lián)盟制定。級標(biāo)準(zhǔn)級標(biāo)準(zhǔn)是不存在的,級一般指的是最初支持的。 這篇筆記的內(nèi)容對應(yīng)的是《JavaScript高級程序設(shè)計(jì)(第三版)》中的第一章。 1.ECMA 和 ECMA-262 ECMA 是歐洲計(jì)算機(jī)制造商協(xié)會(huì)的縮寫,全程是 European Computer Manufacturers Ass...
摘要:實(shí)現(xiàn)一個(gè)完整的實(shí)現(xiàn)應(yīng)該由下列三個(gè)不同的部分組成核心文檔對象模型瀏覽器對象模型文檔對象模型是針對但經(jīng)過擴(kuò)展用于的應(yīng)用程序編程接口。級別級由兩個(gè)模塊組成核心和。其中,核心規(guī)定是如何映射基于的文檔結(jié)構(gòu),以便簡化對文檔中任意部分的訪問和操作。 javascript從一個(gè)簡單的輸入驗(yàn)證器發(fā)展成為一門強(qiáng)大的編程語言,完全出乎人們的意料。 javascript實(shí)現(xiàn)一個(gè)完整的javascript實(shí)現(xiàn)應(yīng)...
摘要:在上百種語言中算是命好的一個(gè),還有就是最近納入高考體系的。由以下三個(gè)部分構(gòu)成。就是對實(shí)現(xiàn)該標(biāo)準(zhǔn)規(guī)定的各個(gè)方面內(nèi)容的語言的描述。是針對但經(jīng)過擴(kuò)展的用于的應(yīng)用程序編程接口。將頁面映射為由節(jié)點(diǎn)構(gòu)成的樹狀結(jié)構(gòu)。 JavaScript的歷史這里就不再贅述了,當(dāng)然JavaScript的歷史還是比較有意思的。在上百種語言中JavaScript算是‘命’好的一個(gè),還有就是最近納入高考體系的python...
摘要:可以使用偵聽器或處理程序來預(yù)訂事件,以便事件發(fā)生時(shí)執(zhí)行相應(yīng)的代碼。響應(yīng)某個(gè)事件的函數(shù)稱為事件處理程序或事件偵聽器??梢詣h除通過級方法指定的事件處理程序。 JavaScript和HTML之間的交互是通過事件實(shí)現(xiàn)的。 事件:文檔或?yàn)g覽器窗口中發(fā)生的一些特定的交互瞬間。 可以使用偵聽器(或處理程序來預(yù)訂事件),以便事件發(fā)生時(shí)執(zhí)行相應(yīng)的代碼。 1. 事件流 事件流:從頁面中接收事件的順序。 ...
閱讀 1886·2021-11-15 11:39
閱讀 1091·2020-12-03 17:06
閱讀 746·2019-12-27 11:42
閱讀 3278·2019-08-30 13:59
閱讀 1474·2019-08-26 13:22
閱讀 3291·2019-08-26 12:15
閱讀 2480·2019-08-26 10:22
閱讀 1570·2019-08-23 18:40