節點的關系:
firstChild:第一個元素,第一個元素如果該節點沒有字節點
lastChild:最后一個元素,最后一個元素如果該節點沒有字節點
parentNode獲取父節點
childNode:獲取所有字節點,找不到返回空數組
childElementCount:返回子元素(不包括文本節點和注釋)的個數
firstElementChild:指向第一個子元素
lastElementChild;指向最后一個元素
previousElementSibling:指向前一個同輩元素
nextElementSibling:指向后一個同輩元素
children:獲取元素子元素,返回一個數組
dom.nextSibling:獲取下一個節點
dom.nextElementSibling:獲取下一個元素
dom.previousSibling:獲取上一個節點
dom.previousElementSibling:獲取上一個元素
節點的操作:
document.createElement():創建新元素,這個方法只接受一個參數,元素的標簽名
var div=document.createElement("div");
console.log(div)
document.createTextNode();創建文本節點,參數為字符串文本
var text = document.createTextNode("寫入的文字");
console.log(text)
appendChild():插入節點
node.appendChild(node):插入指定的節點,使其成為那個節點的最后一個節點,在插入的元素節點上調用
div.appendChild(text)//把文本插入到div里
document.body.appendChild(div)//把div寫入到body里面
insterBefor(新節點,參照節點)第一個參數代表待插入 的節點第二個參數代表已存在的節點,新節點插入該節點的前面在父節點上調用
insterBefor(—)函數用法;
新元素:你想插入的元素(newElement)
目標元素:你想把這個元素插入到哪個元素(targetElement)
父元素:目標元素的父元素(parentElement)
var scr=document.querySelector('script')
document.body.insterBefor(div,scr)
replaceChild:實現子節點(對象)的替換,返回被替換對象的引用
node.replaceChild(newnode,oldnode)替換節點父.replaceChild(新節點,要替換的節點)
刪除一個節點并用一個新的節點取而代之 第一個參數是新節點,第二個參數是需要代替的節點在父節點上調用該方法
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
var newli=document.createElement('li')
var san=document.querySelector('ul li ')[3]//先獲取
ul.replaceChild(newli,san)
removeChild(node):父元素.removeChild(要刪除的節點)
從文檔中刪除一個節點,該方法不是在刪除的節點上調用,而是在父節點上調用
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
var newli=document.createElement('li')
var san=document.querySelector('ul li ')[3]//先獲取
ul.removeChild(san);//刪除下標是三的li
克隆節點 需要克隆的節點.cloneNode(true/false);
用于創建調用這個方法的節點的一個完全相同的副本,接受一個布爾值代表是否執行深復制
true:深復制 復制節點及其整個節點樹
false:淺復制 只復制節點本身
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
var san=document.querySelector('ul li ')[3]//先獲取
san.cloneNode(true/false)