一、節(jié)點(diǎn)
- 文本節(jié)點(diǎn),IE8以下空格節(jié)點(diǎn)獲取不到。
- 元素節(jié)點(diǎn)
div。
- 屬性節(jié)點(diǎn)
class、id、value。
- 注釋節(jié)點(diǎn)
<div id="wrap">
<div class="position">
<div id="box" class="box1" data-title="這也是節(jié)點(diǎn)" abc="133">
<!-- <div>
<img src="1.jpg" />
</div> -->
你好嗎!??!
<span id="my-span">這是個(gè)span</span>
<p>這是一個(gè)p標(biāo)簽</p>
<ul>
<li>這是li標(biāo)簽1</li>
<li>這是li標(biāo)簽2</li>
<li>這是li標(biāo)簽3</li>
</ul>
</div>
<div id="box2"></div>
</div>
</div>
二、獲取節(jié)點(diǎn)
- 獲取子代節(jié)點(diǎn)(動(dòng)態(tài)獲?。?。
ele.childNodes:文本節(jié)點(diǎn)、元素節(jié)點(diǎn)。ele.children:只獲取元素節(jié)點(diǎn)。
- 獲取第一個(gè)子代節(jié)點(diǎn)。
ele.firstChild:返回第一個(gè)包括文本節(jié)點(diǎn)和注釋節(jié)點(diǎn)。ele.firstElementChild:獲取第一個(gè)元素節(jié)點(diǎn)。
- 獲取最后一個(gè)子代節(jié)點(diǎn)。
ele.lastChild:獲取到文本和注釋節(jié)點(diǎn)。ele.lastElementChild:獲取最后一個(gè)元素節(jié)點(diǎn)。
- 獲取父親節(jié)點(diǎn)。
ele.parentNode:獲取父親節(jié)點(diǎn)。ele.offsetParent:找到定位父級(jí)。
- 下一個(gè)兄弟節(jié)點(diǎn)。
ele.nextSibling:獲取到下一個(gè)節(jié)點(diǎn),包括文本、注釋節(jié)點(diǎn)。ele.nextElementSibling:只獲取元素節(jié)點(diǎn)。
- 上一個(gè)兄弟節(jié)點(diǎn)。
ele.previousSibling:獲取到下一個(gè)節(jié)點(diǎn),包括文本、注釋節(jié)點(diǎn)。ele.previousElementSibling:只獲取元素節(jié)點(diǎn)。
- 獲取子元素節(jié)點(diǎn)的數(shù)量。
ele.childElementCount。
三、節(jié)點(diǎn)的操作
- 創(chuàng)建節(jié)點(diǎn):
document.createElement('nodename'),放標(biāo)簽名,創(chuàng)建元素節(jié)點(diǎn),創(chuàng)建節(jié)點(diǎn)是document的方法,創(chuàng)建完的節(jié)點(diǎn)可以直接進(jìn)行dom操作。
- 創(chuàng)建文本節(jié)點(diǎn):
createTextNode。
- 刪除節(jié)點(diǎn):
parentNode.removeChild(node),刪除節(jié)點(diǎn)只能從父級(jí)開始刪除,不能自己刪除自己。
- 克隆節(jié)點(diǎn):
cloneNode(),克隆只克隆元素本身還有元素節(jié)點(diǎn),不會(huì)克隆事件,可以接受一個(gè)布爾類型,若是true,則克隆子孫元素。
- 添加節(jié)點(diǎn):
parentNode.appendChild(node),只能從父級(jí)節(jié)點(diǎn)開始添加,添加位置在最后的子節(jié)點(diǎn)后面。
- 替換節(jié)點(diǎn):
parentNode.replaceChild(new, old),第一個(gè)用來替換新元素,第二個(gè)被替換元素。
- 在節(jié)點(diǎn)前添加節(jié)點(diǎn):
parentNode.insertBefore(new, old),第一個(gè)用來插入的新元素,第二個(gè)在這個(gè)元素前插入。
var oBox = document.getElementById('box'),
oSpan = document.getElementById('my-span');
oBox.onclick = function(){
alert(1)
}
var oBox2 = oBox.cloneNode(true);
wrap.appendChild(oBox2);
console.log(oBox2)
var oP = document.createElement('p');
oP.innerHTML = '我是一個(gè)p標(biāo)簽';
oP.onclick = function() {
alert('我是p標(biāo)簽的點(diǎn)擊事件')
}
oBox.appendChild(oP);
var oText = document.createTextNode('我很好?。?!');
oBox.appendChild(oText);
console.log(oText)
四、節(jié)點(diǎn)屬性
- 獲取節(jié)點(diǎn)屬性。
ele.getAttribute(key),節(jié)點(diǎn)名稱,直接返回值。ele.getAttributeNode,返回節(jié)點(diǎn)對(duì)象。
- 設(shè)置節(jié)點(diǎn)屬性。
ele.setAttribute(key, value),不要用數(shù)字來當(dāng)做key。ele.setAttributeNode(node),node是一個(gè)節(jié)點(diǎn)對(duì)象。
- 創(chuàng)建節(jié)點(diǎn)對(duì)象。
document.createAttribute("nodeName"),創(chuàng)建完之后要設(shè)置value值。
- 刪除節(jié)點(diǎn)對(duì)象。
ele.removeAttribute(key)
- 節(jié)點(diǎn)類型。1--element--元素節(jié)點(diǎn)、3--#text--文本節(jié)點(diǎn)、8--#comment--注釋節(jié)點(diǎn)、9--document--文檔節(jié)點(diǎn)。
- tagName是只有元素節(jié)點(diǎn)才有,nodeName是所有節(jié)點(diǎn)都有。
var oBox = document.getElementById('box');
oBox.removeAttribute('abc');
console.log(document.nodeType);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。