摘要:在瀏覽器中,對(duì)象是繼承自類型的一個(gè)實(shí)例,表示整個(gè)頁(yè)面。級(jí)只為規(guī)定了一個(gè)方法,即。,元素在文檔中的唯一標(biāo)識(shí)符。,有關(guān)元素的附加說(shuō)明信息,一般通過(guò)工具提示條顯示出來(lái)。第一類特性就是,用于通過(guò)為元素指定樣式。
DOM(文檔對(duì)象模型)是針對(duì)HTML 和XML 文檔的一個(gè)API(應(yīng)用程序編程接口)。DOM描,繪了一個(gè)層次化的節(jié)點(diǎn)樹(shù),允許開(kāi)發(fā)人員添加、移除和修改頁(yè)面的某一部分
節(jié)點(diǎn)層次DOM 可以將任何HTML 或XML 文檔描繪成一個(gè)由多層節(jié)點(diǎn)構(gòu)成的結(jié)構(gòu)。節(jié)點(diǎn)分為幾種不同的類
型,每種類型分別表示文檔中不同的信息及(或)標(biāo)記。每個(gè)節(jié)點(diǎn)都擁有各自的特點(diǎn)、數(shù)據(jù)和方法,另
外也與其他節(jié)點(diǎn)存在某種關(guān)系
獲取子節(jié)點(diǎn)
var firstChild = someNode.childNodes[0]; var secondChild = someNode.childNodes.item(1); var count = someNode.childNodes.length;parentNode
獲取父節(jié)點(diǎn)
firstNode獲取第一個(gè)子節(jié)點(diǎn)
lastNode獲取最后一個(gè)子節(jié)點(diǎn)
nextSibling獲取下一個(gè)兄弟節(jié)點(diǎn)
previousSibling獲取上一個(gè)兄弟節(jié)點(diǎn)
ownerDocument獲取文檔節(jié)點(diǎn)
hasChildNodes()判斷是否有子節(jié)點(diǎn)
appendChild()添加子節(jié)點(diǎn),接收一個(gè)參數(shù)表示要添加的節(jié)點(diǎn),返回添加的節(jié)點(diǎn).
var returnedNode = someNode.appendChild(newNode); alert(returnedNode == newNode); //true alert(someNode.lastChild == newNode); //trueinsertBefore()
在參考節(jié)點(diǎn)前添加子節(jié)點(diǎn),接收兩個(gè)參數(shù),第一個(gè)參數(shù)表示要添加的節(jié)點(diǎn),第二個(gè)參數(shù)表示參考節(jié)點(diǎn),返回添加的節(jié)點(diǎn).
//插入后成為第一個(gè)子節(jié)點(diǎn) var returnedNode = someNode.insertBefore(newNode, someNode.firstChild); alert(returnedNode == newNode); //truereplaceChild()
替換子節(jié)點(diǎn),接收兩個(gè)參數(shù),第一個(gè)參數(shù)表示要添加的節(jié)點(diǎn),第二個(gè)參數(shù)表示被替換的節(jié)點(diǎn),返回被替換的節(jié)點(diǎn).
//替換第一個(gè)子節(jié)點(diǎn) var returnedNode = someNode.replaceChild(newNode, someNode.firstChild);removeChild()
移除子節(jié)點(diǎn),這個(gè)方法接受一個(gè)參數(shù),即要移除的節(jié)點(diǎn)。被移除的節(jié)點(diǎn)將成為方法的返回值
//移除第一個(gè)子節(jié)點(diǎn) var formerFirstChild = someNode.removeChild(someNode.firstChild);cloneNode()
克隆節(jié)點(diǎn),接收一個(gè)boolean類型的參數(shù),當(dāng)參數(shù)為true時(shí)執(zhí)行深復(fù)制,意即復(fù)制內(nèi)容包含其子節(jié)點(diǎn).
var deepList = myList.cloneNode(true); alert(deepList.childNodes.length); //3(IE < 9)或7(其他瀏覽器) var shallowList = myList.cloneNode(false); alert(shallowList.childNodes.length); //0
deepList.childNodes.length 中的差異主要是因?yàn)镮E8 及更早版本與其他瀏覽器處理空白字符的方式不一樣。IE9 之前的版本不會(huì)為空白符創(chuàng)建節(jié)點(diǎn)。
cloneNode()方法不會(huì)復(fù)制添加到DOM 節(jié)點(diǎn)中的JavaScript 屬性,例如事件處
理程序等。這個(gè)方法只復(fù)制特性、(在明確指定的情況下也復(fù)制)子節(jié)點(diǎn),其他一切
都不會(huì)復(fù)制。IE 在此存在一個(gè)bug,即它會(huì)復(fù)制事件處理程序,所以我們建議在復(fù)制
之前最好先移除事件處理程序。
JavaScript 通過(guò)Document 類型表示文檔。在瀏覽器中,document 對(duì)象是HTMLDocument(繼承
自Document 類型)的一個(gè)實(shí)例,表示整個(gè)HTML 頁(yè)面。而且,document 對(duì)象是window 對(duì)象的一個(gè)
屬性,因此可以將其作為全局對(duì)象來(lái)訪問(wèn)
獲取html節(jié)點(diǎn)元素
var html = document.documentElement; //取得對(duì)的引用 alert(html === document.childNodes[0]); //true alert(html === document.firstChild); //truebody
獲取body節(jié)點(diǎn)元素
title獲取title文字節(jié)點(diǎn)元素
//取得文檔標(biāo)題 var originalTitle = document.title; //設(shè)置文檔標(biāo)題 document.title = "New page title";URL
取得完整的URL
domain取得域名
referrer取得來(lái)源頁(yè)面的URL
//取得完整的URL var url = document.URL; //取得域名 var domain = document.domain; //取得來(lái)源頁(yè)面的URL var referrer = document.referrer;getElementById()
通過(guò)id屬性獲取元素
getElementsByTagName()通過(guò)元素名獲取元素
var div = document.getElementById("myDiv"); //取得id="myDiv"元素的引用 var images = document.getElementsByTagName("img"); //取得img元素的引用 var allElements = document.getElementsByTagName("*"); //獲取文檔中所有的元素
document.anchorsIE7及較低版本還為此方法添加了一個(gè)有意思的“怪癖”:name特性與給定ID匹配的表單元素也會(huì)被該方法返回
包含文檔中所有帶name 特性的元素
document.forms包含文檔中所有的
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/86136.html
摘要:為此也做了一些學(xué)習(xí)簡(jiǎn)單的侃一侃虛擬到底是什么虛擬詳解二什么是虛擬虛擬首次產(chǎn)生是框架最先提出和使用的,其卓越的性能很快得到廣大開(kāi)發(fā)者的認(rèn)可,繼之后也在其核心引入了虛擬的概念。所謂的虛擬到底是什么也就是通過(guò)語(yǔ)言來(lái)描述一段代碼。 隨著Vue和React的風(fēng)聲水起,伴隨著諸多框架的成長(zhǎng),虛擬DOM漸漸成了我們經(jīng)常議論和討論的話題。什么是虛擬DOM,虛擬DOM是如何渲染的,那么Vue的虛擬Dom...
摘要:什么是虛擬舉例說(shuō)明如果網(wǎng)頁(yè)中有一個(gè)表格,表頭是姓名,年級(jí),分?jǐn)?shù)。即我們用虛擬的結(jié)構(gòu)替換需要處理的結(jié)構(gòu),對(duì)虛擬的進(jìn)行操作之后再進(jìn)行渲染,就成為了真實(shí)的數(shù)據(jù)。當(dāng)狀態(tài)變更的時(shí)候用修改后的新渲染的的對(duì)象和舊的虛擬對(duì)象作對(duì)比,記錄著兩棵樹(shù)的差異。 虛擬DOM 可以看看這個(gè)文章如何理解虛擬DOM? - 戴嘉華的回答 - 知乎 https://www.zhihu.com/questio... 深度剖...
摘要:什么是虛擬舉例說(shuō)明如果網(wǎng)頁(yè)中有一個(gè)表格,表頭是姓名,年級(jí),分?jǐn)?shù)。即我們用虛擬的結(jié)構(gòu)替換需要處理的結(jié)構(gòu),對(duì)虛擬的進(jìn)行操作之后再進(jìn)行渲染,就成為了真實(shí)的數(shù)據(jù)。當(dāng)狀態(tài)變更的時(shí)候用修改后的新渲染的的對(duì)象和舊的虛擬對(duì)象作對(duì)比,記錄著兩棵樹(shù)的差異。 虛擬DOM 可以看看這個(gè)文章如何理解虛擬DOM? - 戴嘉華的回答 - 知乎 https://www.zhihu.com/questio... 深度剖...
摘要:不同的框架對(duì)這三個(gè)屬性的命名會(huì)有點(diǎn)差別,但表達(dá)的意思是一致的。它們分別是標(biāo)簽名屬性和子元素對(duì)象。我們先來(lái)看下頁(yè)面的更新一般會(huì)經(jīng)過(guò)幾個(gè)階段。元素有可能是數(shù)組的形式,需要將數(shù)組解構(gòu)一層。 歡迎關(guān)注我的公眾號(hào)睿Talk,獲取我最新的文章:showImg(https://segmentfault.com/img/bVbmYjo); 一、前言 目前最流行的兩大前端框架,React和Vue,都不約...
摘要:本文就將帶大家深入淺出地了解事件的那些屬性和方法。針對(duì)不同級(jí)別的,我們的事件處理方式也是不一樣的。當(dāng)然其優(yōu)點(diǎn)是不需要操作來(lái)完成事件的綁定。文章地址事件深入淺出二。 在項(xiàng)目開(kāi)發(fā)時(shí),我們時(shí)常需要考慮用戶在使用產(chǎn)品時(shí)產(chǎn)生的各種各樣的交互事件,比如鼠標(biāo)點(diǎn)擊事件、敲擊鍵盤事件等。這樣的事件行為都是前端DOM事件的組成部分,不同的DOM事件會(huì)有不同的觸發(fā)條件和觸發(fā)效果。本文就將帶大家深入淺出地了解...
摘要:簡(jiǎn)介原文鏈接簡(jiǎn)稱是一種輕量級(jí),解釋型的編程語(yǔ)言,其函數(shù)是一等公民。標(biāo)準(zhǔn)的目標(biāo)是讓任何一種程序設(shè)計(jì)語(yǔ)言能操控使用任何一種標(biāo)記語(yǔ)言編寫(xiě)出的任何一份文檔。核心規(guī)定了如何映射基于的文檔結(jié)構(gòu),以便簡(jiǎn)化對(duì)文檔的任意部分的訪問(wèn)和操作。 JavaScript 簡(jiǎn)介 原文鏈接 JavaScript ( 簡(jiǎn)稱:JS ) 是一種 輕量級(jí),解釋型 的編程語(yǔ)言,其函數(shù)是一等公民。眾所周知,它是用于網(wǎng)頁(yè)開(kāi)發(fā)的腳...
閱讀 3378·2021-09-08 09:45
閱讀 1286·2019-08-30 15:53
閱讀 1563·2019-08-30 14:12
閱讀 1004·2019-08-29 17:01
閱讀 2602·2019-08-29 15:35
閱讀 431·2019-08-29 13:09
閱讀 2011·2019-08-29 12:32
閱讀 3113·2019-08-26 18:37