DOM操作

標籤:css
元素:JS
節點:DOM

獲取元素的方法:
getElmentById
getElementsByTagName

DOM document

獲取子節點:

var oUl = document.getElementById("ul1");
//獲取子節點childNodes
oUl.childNodes   //11
//這個不僅僅是獲取我們想要的子節點,還會獲取多餘的子節點(會將期間的空格算作一個子節點)
這是一段文字  //文本節點

<span>這是一段文字</span?     //元素節點

nodeType(節點的類型)

for(var i=0;i<oUl.childNodes.length;i++){
    if(oUl.childNodes[i].nodeType==1){
        oUl.childNodes[i].style.background="red";
    }
}
  • childNodes(獲取子節點)

  • children(只獲取元素)

  • parentNode(獲取父節點)

  • offsetParent(此元素相對於哪一個父元素的定位)可用來檢測此個元素的相對於哪一個元素進行的定位的父級

  • firstChild(childNodes)、firstElementChild

  • lastChild、lastElementChild

  • 兄弟節點 nextSibling、nextElementSibling

  • previousSibling、previousElementSibling

  • DOM方式操作元素屬性

    • 獲取:getAttribute(名稱)
    • 設置:setAttribute(名稱,值)
    • 刪除:removeAttribute(名稱)
var oDiv2 = document.getElementById("div2");

alert(oDiv2.offsetParent); //body

<body>
<div id="div2">
</div>
</body>

//封裝getElmentsByClassName的方法

function getByClass(oParent,sClass)
{
    var aResult = [];
    var aEle    = oParent.getElementsByTagName("*");
    for(var i=0;i<aEle.length;i++)
    {
        if(aEle[i].className==sClass)
        {
            aResult.push(aEle[i]);
        }
    }
    return aResult;
}

創建一個節點 creatElement();

追加一個節點:appendChild();

  • appendChild()會先刪除原有的Elment,然後再添加到新的目標標籤之後

插入元素

  • insertBefore(節點,原有節點) //在已有元素前插入

父級.appendChild(子節點);
父級.insertBefore(子節點,原有節點)

if(ali.length>0) {
    oUl.insertBefore(oLi,ali[0]);
}else {
    oUl.appendChild(oLi);
}

刪除元素

  • removeChild()
父級.removeChild();

文檔碎片

  • 文檔碎片可以提高DOM操作性能
  • 文檔碎片原理
  • document.createDocumentFragment()
var oUl = document.getElementById("ul1");

var oFrag = document.createDocumentFragment();

for(var i=0;i<10000;i++)  {
    var oLi = document.createElement('li');
    oFrag.appendChild(oLi);
}
oUl.appendChild(oFrag);

表格

  • tBodies
  • thead(唯一)
  • tFoot(唯一)
  • rows
  • cells
<table>
    <thead>
        <td>ID</td>
        <td>姓名</td>
        <td>年齡</td>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>解開了</td>
            <td>12</td>
        </tr>
    </tbody>
</table>
str.search(ad);  //沒有,返回-1,存在返回ad所在序列位置數字

split()

分割字符

var str = " 1 2 ";

str.split(" ");  //[1,2]

sort()進行排序

//只能使用Arry數組排序
arr.sort(function(n1,n2) {
    return n1-n2;
});

表單

//後臺通過name獲得數據
<form action="http://baidu.com/">
    用戶名:<input type="text" name="user" /><br>
    密碼:<input type="password" name="password" />
    <input type="submit" />
</form>
  • onreset 重置

表單驗證

  •  阻止用戶輸入非法字符   阻止事件
  •  輸入時、失去焦點時驗證   onkeyup、onblur
  • 提交時檢查    onsubmit
  •  後臺數據檢查
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章