** 文檔對(duì)象模型(DOM)队塘,他給文檔(結(jié)構(gòu)樹)提供了一個(gè)結(jié)構(gòu)化的表達(dá)方法穴张。**
DOM結(jié)構(gòu)樹
demo鏈接
<body>
<button>添加</button>
<p class="p1">別刪除我呀~~ p1
<span class="span">hello</span>
</p>
<div class="div1">別改我~別改我~
<span class="span2">那就只能改你了</span>
</div>
</body>
<script>
var btn = document.querySelector('button')
var Body = document.querySelector('body')
var p1 = document.querySelector('.p1')
var span1 = document.querySelector('.span')
var div1 = document.querySelector('.div1')
var span2 = document.querySelector('.span2')
btn.addEventListener('click',function(){
// 1. 創(chuàng)建一個(gè)元素 div撬统,這里可以是任意元素
// 把新Div 插入到Body上
let Div = document.createElement('div')
Body.appendChild(Div)
// 2. 生成一個(gè)文本節(jié)點(diǎn),參數(shù)就是文本所需要的內(nèi)容
// 把文本插入到所需要的元素上
// 插入的位置也可以用insertBefore()
let txt = document.createTextNode('Hello我是文本');
Div.appendChild(txt)
// 3.給元素添加一個(gè)屬性
// 讓它的字體顏色變?yōu)榧t色
let Atb = document.createAttribute('class')
Atb.value = 'attribute'
Div.setAttributeNode(Atb);
// 4.刪除一個(gè)p的子節(jié)點(diǎn)
// 然后再通過parent刪除自身
p1.removeChild(span1)
p1.parentNode.removeChild(p1)
// 5.新增一個(gè)節(jié)點(diǎn)铝穷,把新增節(jié)點(diǎn)跟p1對(duì)換
var div1Txt = document.createTextNode("a啊啊啊啊~~我被改了~~");
var newDiv = document.createElement('span')
newDiv.appendChild(div1Txt)
var parentDiv = span2.parentNode;
parentDiv.replaceChild(newDiv,span2)
// 6.div1 添加內(nèi)容
div1.innerHTML += "我是被新增的"
// 各種獲取元素的方法
/*
getElementById(id)
getElementsByTagName(element)
getElementsByClassName(class)
*/
})
</script>
其中會(huì)遇到remove不能刪除本身的問題朦乏,可以用找到父級(jí)然后再刪除自身。 還有很多問題要慢慢動(dòng)手踩坑氧骤, 無法避免~