JavaScript中dom操作方法示例詳解
前言
DOM(文檔對象模型)操作是基于面向?qū)ο蟮乃枷朐O(shè)計的。在瀏覽器中,HTML 文檔被解析為一個由對象組成的樹形結(jié)構(gòu)(即 DOM 樹),每個 HTML 元素、屬性、文本節(jié)點(diǎn)都是一個對象,通過對象的屬性和方法可以實現(xiàn)對頁面內(nèi)容的動態(tài)操作。
一、查找
1.1 獲取元素
getElementById() 通過id獲取元素 獲取符合條件的第一個對象
var obj = document.getElementById("aa")
getElementsByClassName() 根據(jù)class值查找 找到所有符合條件的對象組成的數(shù)組
var arr = document.getElementsByClassName("aa")
getElementsByTagName() 根據(jù)元素名稱查找 找到所有符合條件的對象組成的數(shù)組
var arr = document.getElementsByTagName("div")
querySelector() 根據(jù)元素選擇器查找,獲取符合條件的第一個對象
var obj = document.querySelector(".aa")
querySelectorAll() 根據(jù)元素選擇器查找,找到所有符合條件的對象組成的數(shù)組
var arr = document.querySelectorAll(".aa")
1.2 通過關(guān)系查找(Dom節(jié)點(diǎn))
找父親 parentNode parentElement
找孩子 childNodes(包含元素節(jié)點(diǎn)和文本節(jié)點(diǎn)) children(所有子元素節(jié)點(diǎn))
第一個孩子 firstChild firstElementChild
最后一個孩子 lastChild lastElementChild
上一個元素 previousSibling previousElementSibling
下一個元素 nextSibling nextElementSibling
二、修改
2.1 改內(nèi)容
| innerText | 以文本形式呈現(xiàn) |
| innerHTML | 解析成標(biāo)簽 |
| value | 用于修改收集用戶信息的標(biāo)簽(如input) |
2.1.1 innerText
html文件代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="aa">aa</div>
<input type="text" value="00" class="bb">
</body>
<script type="text/javascript" src="./00.js"></script>
</html>js文件代碼如下:
var obj = document.querySelector(".aa")
obj.innerText="<a>0000000</a>"結(jié)果如下:

2.1.2 innerHTML
js代碼如下:
var obj = document.querySelector(".aa")
obj.innerHTML="<a>0000000</a>"結(jié)果如下:

2.1.3 value
js代碼如下:
var obj = document.querySelector(".aa")
obj.innerHTML="<a>0000000</a>"
var bb = document.querySelector(".bb")
bb.value="xxxxx"結(jié)果如下:

2.2 改屬性
對象.屬性=值
html文件代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.aa{
width:200px;
height:200px;
background-color: aqua;
}
.bb{
width:200px;
height:200px;
background-color:yellow;
}
</style>
<body>
<div class="aa">aa</div>
</body>
<script type="text/javascript" src="./00.js"></script>
</html>結(jié)果如下:

js文件代碼如下:
var obj = document.querySelector(".aa")
obj.className="bb"結(jié)果如下:

2.3 自定義屬性
setAttribute("屬性名", "屬性值")
getAttribute("屬性名")
html文件代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.aa{
width:200px;
height:200px;
background-color: aqua;
}
.bb{
width:200px;
height:200px;
background-color:yellow;
}
</style>
<body>
<div class="aa">aa</div>
</body>
<script type="text/javascript" src="./00.js"></script>
</html>js文件代碼如下:
var obj = document.querySelector(".aa")
obj.setAttribute("index","1")
console.log(obj.getAttribute("index"))結(jié)果如下:

2.4 改樣式
obj.style.屬性名="屬性值"
html文件代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.aa{
width:200px;
height:200px;
background-color: aqua;
}
.bb{
width:200px;
height:200px;
background-color:yellow;
}
</style>
<body>
<div class="aa">aa</div>
</body>
<script type="text/javascript" src="./00.js"></script>
</html>js文件代碼如下:
var obj = document.querySelector(".aa")
obj.style.backgroundColor='red'結(jié)果如下:

注:修改樣式時屬性名要采用駝峰式,如 font-size 要變?yōu)閒ontSize。
三、添加
3.1 創(chuàng)建元素
| createElement() | 創(chuàng)建元素 |
| cloneNode() | 復(fù)制元素( false淺復(fù)制,只復(fù)制外殼 true復(fù)制全部) |
3.2 添加元素
| appendChild() | 子元素最后位置添加 |
| insertBefore() | 某個子元素前添加 |
| replaceChild() | 替換掉某個子元素 |
3.2.1 appendChild()
html文件代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.aa{
width:200px;
height:200px;
background-color: aqua;
}
.bb{
width:100px;
height:100px;
background-color:rgb(255, 0, 93);
}
</style>
<body>
<div class="aa">
<div class="bb">子元素</div>
</div>
</body>
<script type="text/javascript" src="./00.js"></script>
</html>代碼運(yùn)行結(jié)果:

js文件代碼:
var obj = document.querySelector(".aa")
var bb = document.querySelector(".bb")
var newNode = document.createElement("h2")
console.log(newNode)
newNode.innerText = "新添加的元素"
newNode.className = "xixi"
newNode.style.background = "purple"
obj.appendChild(newNode,bb)結(jié)果如下:

3.2.2 insertBefore()
js文件代碼:
var obj = document.querySelector(".aa")
var bb = document.querySelector(".bb")
var newNode = document.createElement("h2")
console.log(newNode)
newNode.innerText = "新添加的元素"
newNode.className = "xixi"
newNode.style.background = "purple"
obj.insertBefore(newNode,bb)結(jié)果如下:

注:還可以采用prepend()。
3.2.3 replaceChild()
js代碼如下:
var obj = document.querySelector(".aa")
var bb = document.querySelector(".bb")
var newNode = document.createElement("h2")
console.log(newNode)
newNode.innerText = "新添加的元素"
newNode.className = "xixi"
newNode.style.background = "purple"
obj.replaceChild(newNode,bb)結(jié)果如下:

3.2.4 cloneNode()
js文件代碼如下:
var obj = document.querySelector(".aa")
var bb = document.querySelector(".bb")
var newNode = document.createElement("h2")
console.log(newNode)
newNode.innerText = "新添加的元素"
newNode.className = "xixi"
newNode.style.background = "red"
var cc = newNode.cloneNode(true)
obj.replaceChild(cc,bb)結(jié)果如下:

五、刪除
找要刪除元素的父級元素,調(diào)用removeChild()方法
html文件代碼同增加中html文件代碼。
js文件代碼如下:
var obj = document.querySelector(".aa")
var bb = document.querySelector(".bb")
obj.removeChild(bb)結(jié)果如下:

總結(jié)
到此這篇關(guān)于JavaScript中dom操作方法的文章就介紹到這了,更多相關(guān)js dom操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JS實現(xiàn)DOM刪除節(jié)點(diǎn)操作示例
- JS DOM 操作實現(xiàn)代碼
- JavaScript DOM節(jié)點(diǎn)操作方法總結(jié)
- javascript dom 操作詳解 js加強(qiáng)
- JS實現(xiàn)的DOM插入節(jié)點(diǎn)操作示例
- js/jQuery對象互轉(zhuǎn)(快速操作dom元素)
- JS常見DOM節(jié)點(diǎn)操作示例【創(chuàng)建 ,插入,刪除,復(fù)制,查找】
- JavaScript DOM元素常見操作詳解【添加、刪除、修改等】
- 學(xué)習(xí)JS中的DOM節(jié)點(diǎn)以及操作
- javascript DOM 操作基礎(chǔ)知識小結(jié)
相關(guān)文章
JavaScript中的50+個實用工具函數(shù)小結(jié)
JavaScript可以做很多出色的事情,本篇文章給大家整理50+個實用工具函數(shù),可以幫助你提高工作效率并可以幫助調(diào)試代碼,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
JavaScript實現(xiàn)簡易計算器功能的兩種方法
這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)簡易計算器功能的兩種方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07

