節點關係屬性:(帶element的屬性ie低版本不支持)node
節點操做(增刪改):數組
> document.createElement('div') 建立元素節點 > document.createTextNode('文本') 建立文本節點 ``` var newLi = document.createElement('li'); newLi.innerHTML = '444'; ```
``` var ul = document.getElementsByTagName('ul')[0]; ul.appendChild(newLi); ```
``` var li2 = document.getElementById('li2'); var newLi1 = document.createElement('li'); newLi1.innerHTML = '1-21-2'; li2.parentNode.insertBefore(newLi1,li2); ```
* 若是newNode是已經存在的標籤,就是改變標籤的物理位置 ``` var newLi2 = document.createElement('li'); newLi2.innerHTML = '三三三'; var li3 = document.getElementById('li3'); //ul.replaceChild(newLi2,li3); li3.parentNode.replaceChild(newLi2,li3); ```
``` var li5 = document.getElementById('li5'); //ul.removeChild(li5); li5.parentNode.removeChild(li5); // li5.remove(); ie不支持 ```
> cloneNode() 克隆節點,不傳參,只複製標籤自己,不包括內容 > cloneNode(true) 深度克隆,複製標籤及標籤裏面的全部內容
獲取元素的方法:瀏覽器
``` //封裝兼容全部瀏覽器的經過類名獲取元素的方法 function getByClass(ele,cls){ //先獲取ele中全部標籤(不區分標籤名) var elements = ele.getElementsByTagName('*'); var ary = []; //遍歷elements for(var i = 0; i < elements.length; i++){ // eles[i].className 'red aa ccc' //先把類名詞列表分割成數組 var clsAry = elements[i].className.split(' '); //['red','aa','ccc'] //遍歷類名數組,若是存在cls相同的類名,就把這個元素放進ary for(var j = 0; j < clsAry.length ; j++){ if(cls == clsAry[j]){ ary.push(elements[i]); break; } } } return ary; } ```