DOM


当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model),如下图所示:

DOM 操作 HTML

  1. 改变 HTML 输出流:

    注意: 绝对不要在文档加载完成后使用 document.write()。这会覆盖该文档

  2. 查找元素:

    通过id: document.getElementById("id_name");

    通过标签: document.getElementByTagName("p");//相同元素的第一个

  3. 改变 HTML 内容:

    使用属性: innerHTML

    function demo(){
        var nv = document.getElementById("id_name");
        nv.innerHTML = "world";
    }
 <script>
var i = 0;
function switchP() {
    i++;
    f = document.getElementById("swPhoto");
    g = document.getElementById("btn");
    if(i%2==0){
        f.src = "../../IMAGE/bugirl1.gif";
        g.style.background = "#5d7492";
    }else{
        f.src = "../../IMAGE/bugirl2.gif";
        g.style.background = "#192965";
    }
}
</script>

方法:

方法 描述
getElementByName() 获取 name
getElementByTagName() 获取元素
getAttribute() 获取元素属性
setAttribute() 设置元素属性
childNodes 访问子节点
parentNode 访问父节点
createElement() 创建元素节点
createTextNode 创建文本节点
insertBefore() 插入节点
removeChild() 删除节点
offsetHeight 网页尺寸
scrollHeight 网页尺寸

实例

<div id="Div"></div>
<script>
    function createNodeA() {
        var div = document.getElementById("Div");
        var input = document.createElement("input");
        input.type = "button";
        input.value = "newBTN";
        input.id = "btnt";
        div.appendChild(input);
    }
    function addNodeB() {
        var div = document.getElementById("Div");
        var bt = document.getElementById("btnt");
        var newNode = document.createElement("p");
        newNode.innerHTML = "button 前面的段落";
        div.insertBefore(newNode,bt);
    }
    /*删除子节点*/
    function removeNode() {
        var div = document.getElementById("Div");
        //document.write(div.childNodes.length);//子节点长度,后面的空格也会算
        div.removeChild(div.childNodes[1]);

    }
    /*获取网页尺寸*/
    function getSize() {
        var width = document.body.offsetWidth||document.documentElement.offsetWidth; /*为了兼容性*/
        var height = document.documentElement.offsetHeight;
        alert(width+" , "+height);
    }
    createNodeA();
    addNodeB();
    //removeNode();
    //getSize();
</script>

DOM EventListener

  1. DOM EventListener 方法:

    addEventListener(): 用于指定元素添加事件句柄

    removeEventListener(): 移除方法添加的事件句柄

<button id="jb_btn">句柄测试</button>
<script>
    var j = document.getElementById("jb_btn");
    j.addEventListener("click",function () {alert("How are you?");});
    j.addEventListener("click",jb_f1);
    <!--j.removeEventListener("click",jb_f1);-->
    function jb_f1() {
        alert("I am fine.");
    }
</script>