DOM操作的增強版功能JS函數
/**
- 將一個DOM節點、HTML字符串混合型參數
- 轉化為原生的DOM節點數組 *
*/ function checkElem(a) { var r = [];
if (a.constructor != Array) {
//如果不是參數數組,則強行轉換 a = [a];
}
for (var i = 0; i < a.length; i++) {
//如果是字符串,例如"<li>aa</li>" if (a[i].constructor == String) { //使用一個臨時元素來存放HTML var div = document.createElement("div"); //注入HTML,轉換成DOM結構 div.innerHTML = a[i]; for (var j = 0; j < div.childNodes.length; j++) { r[r.length] = div.childNodes[j]; } } else if (a[i].length) { //假定是DOM節點數組 for (var j = 0; j < a[i].length; j++) { r[r.length] = a[i][j]; } } else { //DOM節點 r[r.length] = a[i]; }
}
return r; }
/**
- 在parent執行環境下,在before元素下前面添加elem元素
*/ function before(parent, before, elem) { //檢查是否提供parent節點參數 if (elem == null) {
elem = before; before = parent; parent = before.parentNode;
} //獲取元素的新數組 var elems = checkElem(elem);
/**
- 向后遍歷數組,
- 因為我們向前插入元素
- */ for (var i = elems.length - 1; i >= 0; i--) { parent.insertBefore(elem[i], before); }
} /**
- 為parent追加一個子元素的輔助函數 *
*/ function append(parent, elem) { var elems = checkElem(elem);
for(var i = 0; i <= elems.length; i++){
parent.appendChild(elems[i]);
} } /**
- 刪除elem節點函數 *
- */
function remove(elem) {
if(elem) {
} } /**elem.parentNode.removeChild(elem);
- 從一個元素中刪除所有子節點的函數 *
- */
function empty(elem) {
while(elem.firstChild) {
} }</pre>remove(elem.firstChild);
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!