導航:首頁 > 編程語言 > js獲取dom

js獲取dom

發布時間:2023-01-26 16:20:27

A. js中怎樣取得DOM 元素位置

document.querySelector(domSelector).getBoundingClientRect();
//獲取dom元素的top,left,width,height,x,y,right,bottom

B. JS之DOM操作

DOM: Document Object Model,文檔對象模型;js提供了豐富的api來操作文檔內容。
DOM樹: html文檔中的內容是以樹形結構排布,html是DOM樹根,html下只有兩個子標簽head、body
節點: DOM將所有的分支端都成為節點。節點有很多類型,常見的節點類型有:文本節點、元素節點。
可以通過 nodeType查看節點類型 : 1元素節點、3文本節點

特殊的元素節點:
1、html元素

2、body元素

3、head元素

節點操作的api(屬性和方法)
1、nodeName:只讀屬性,可以讀取節點名稱

2、nodeType:只讀屬性,讀取節點類型

3、 hasChildNodes():判斷調用方法的節點是否存在子節點,存在返回true,不存在返回false。
主流瀏覽器會將換行符、製表符、空格當做文本節點處理,IE9以下會忽略它們。

4、childNodes:只讀屬性,獲得節點的子節點集合,子節點集合是一個類數組結構,有數組特點無數組方法

5、firstChild:獲得節點的第一個子節點

6、lastChild:獲得節點的最後一個子節點

7、querySelector():
參數:string類型,css選擇器
作用:獲得文檔中第一個符合選擇器條件的節點
兼容:在IE9以下不支持

8、 querySelectorAll(): // 獲得的都是靜態集合
參數:string類型,css選擇器
作用:獲得文檔中所有符合選擇器條件的節點集合(類數組結構)
兼容:在IE9以下不支持

注意: querySelector() 和 querySelectorAll() 得到的都是元素節點。

9、previousSibling:獲取節點的前一個兄弟節點

10、nextSibling:獲取節點的後一個兄弟節點

11、parentNode:獲得節點的父節點(父節點一定是元素節點)

12、removeChild():節點刪除它的指定子節點
DOM操作元素:暫時不用的隱藏、一定不用的刪除。

13、cloneNode():克隆一個節點
參數:boolean類型,true深克隆,false淺克隆,默認淺克隆
深克隆:不僅克隆節點和節點的屬性,還會克隆節點的子節點
淺克隆:只克隆節點和節點的屬性,不會克隆節點的子節點

14、a.replaceChild(b,c):用b替換c
其中a是c的父節點,c是文檔上已經存在的節點,b可以是節點也可以是已存在節點,被替換的節點會從文檔結構中刪除。

15、a.replaceWith(b):用b替換a
a已存在的節點,b可以是新節點也可以是已存在節點,被替換的節點從DOM樹刪除。

16、a.insertBefore(b,c):在c前面插入b
其中,a是c的父節點,c是已經存在的節點,b是新節點

17、a.appendChild(b):在a末尾追加b

a是父節點,b是a的子節點, c是子節點

元素節點的相關api
1、getElementsByTagName():根據標簽名獲得元素集合(類數組結構)

區別:HTMLCollection 是動態集合,NodeList 是靜態集合。

2、createElement():根據標簽名創建新元素

3、id:讀寫屬性,可以讀取或設置元素的id值

4、className:讀寫屬性,可以讀取或設置元素的class值

5、classList:讀取標簽的類名集合(類數組結構)

add():為元素新增類名,如果類名已存在不會重復添加

remove():刪除元素指定類名,如果類名不存在不會執行操作

元素的屬性分為兩類:
一類是元素本里就擁有的屬性,例如:id、class、style、src、herf、target、alt、title、type、value等等,這些屬性可以在js中直接通過.語法讀取或設置。
再一類是我們為了解決問題給元素添加的自定義屬性,這些屬性在js中無法直接通過.語法讀取,需要通過操作方法訪問。
6、setAttribute(name,value)
參數:name表示要設置的屬性名,value要為屬性設置的值
無返回值

7、getAttribute(name)
參數:name表示要讀取的屬性名
返回值:返回屬性的值,如果屬性不存在會返回null

8、removeAttribute(name)
參數:name表示要刪除的屬性名
無返回值

說明:setAttribute()、getAttribute()、removeAttribute()都可以操作元素的本地屬性和自定義屬性。

element拓展:
兼容:以下屬性、方法在IE9以下不支持。

1、children:讀取元素的所有元素子節點集合(類數組)

2、parentElement:讀取元素的父元素節點

3、previousElementSibling:讀取前一個元素兄弟節點

4、nextElementSibling:讀取後一個元素兄弟節點

5、firstElementChild:讀取第一個元素子節點
6、lastElementChild:讀取最後一個元素子節點
7、remove(): 將調用方法的元素從DOM結構中刪除

C. js獲取已知id的DOM元素

您好,HTML5規範文檔中指出:如果一個元素符合下面兩條規則中的任一條,則window對象中必須要有與之對應的一個屬性,屬性值就是這個對象.
如果一個元素擁有ID屬性,那麼ID屬性的屬性值就會成為window對象的屬性名.
如果一個元素擁有name屬性,那麼name屬性的屬性值就會成為window對象的屬性名.但這個元素的標簽名必須是: a, applet, area, embed, form, frame, frameset, iframe, img, object,其中的一個。
> "foo" in window
false
> typeof foo // 這個全局變數到底有木有?
object
//錯誤控制台輸出了下面的警告.//Element referenced by ID/NAME in the global scope.
//Use W3C standard document.getElementById() instead.

> foo
[object HTMLDivElement]
//錯誤控制台輸出了下面的警告.//Element referenced by ID/NAME in the global scope.
//Use W3C standard document.getElementById() instead.> "foo" in window true

D. javascript 如何獲得html DOM節點的屬性值

先給你看下面兩段代碼

<divid="div1">test!</div>
<script>
console.log(document.getElementById("div1"));//這個能夠獲得值
</script>
<script>
console.log(document.getElementById("div1"));//這個不能獲得值!
</script>
<divid="div1">test!</div>

看出原因沒有?當js代碼是先於html運行時,是獲取不到DOM元素的!因為這時候該DOM元素尚未載入到內存,相當於不存在!

要想實現js代碼放到任何位置都能獲得DOM元素,就要保證代碼在頁面完全載入完畢後才開始運行,比如:

<script>
window.onload=function(){//網頁完全載入完畢才會觸發這個事件
console.log(document.getElementById("div1"));//這時候就能獲得了
}
</script>
<divid="div1">test!</div>

E. js 如何獲取新的和舊的dom樹

1、javascript 獲取 Dom 樹比較簡單。直接獲取document 文檔對象就可以了,或者也可以直接從具體回的控制項對象進行獲取。答
2、比較困難的是如何獲取之前舊的dom 樹對象。常見的思路是可以設置一個全局的數組變數保存之前的dom樹對象,注意此對象保存的只是引用,你做變更,之前保存的對象也是變的,因為兩者本來就是同一個對象。所以你要保存的必須是dom樹的復制對象,也就是所謂的深拷貝對象,這個是有點復雜度的,節點如果復雜的話,容易出現問題,要注意處理。
3、希望對你有幫助。

閱讀全文

與js獲取dom相關的資料

熱點內容
微信清除緩存圖片恢復 瀏覽:305
安卓app會閃退怎麼解決 瀏覽:429
哪些app背單詞是免費的 瀏覽:889
cf擊殺圖標放哪個文件夾 瀏覽:208
為什麼我的爐石不能查看完整數據 瀏覽:179
蘋果7音量按鍵不回彈 瀏覽:296
u盤兩個系統可以放一個文件夾嗎 瀏覽:538
linuxshell變數累加 瀏覽:386
win10控制面板怎麼看 瀏覽:574
如何編程換裝游戲程序 瀏覽:269
怎麼登錄沭陽縣民政局網站 瀏覽:451
iphone6降級ios7 瀏覽:92
怎麼隱藏三星應用程序圖標不見了 瀏覽:203
可以兼職的app 瀏覽:493
iphone圓角圖標製作 瀏覽:659
建設銀行app怎麼申請 瀏覽:163
系統備份文件夾在哪 瀏覽:998
qq分組exo韓文 瀏覽:849
華碩裝裝win7系統教程視頻 瀏覽:407
什麼是數據直連 瀏覽:210

友情鏈接