• DOM使用


    DOM树模型

    document

      |-html

        |-head

          |-....

        |-body

          |-.....

    要解析页面的前提是要拿到一个对象,然后利用树之间前后的关系进行对象的遍历和操作。

    在DHTML的帮助文档当中每个对象有属性、行为、集合、事件、滤镜、方法、对象、样式等描述

    1、在属性中,属性的名称有两列,第一列是HTML中的标签名称,第二列是DOM的名称(用于操作对象),而且HTML中有的标签,DOM中都有,HTML中没有的DOM的也有新增。

    每个对象在DOM中又称作节点,属性值中有一些节点的基本属性,例如:

    <!--获取节点属性-->
    <script type="text/javascript">
    function getAtribute()
    {
        var divObj = document.getElementById("divId").nextSibling;
        document.write("nodeName:"+divObj.nodeName+"--nodeType:"+divObj.nodeType+"--nodeValue:"+divObj.nodeValue);    
    
    }
    </script>
    <input type="button" value="show" onclick="getAtribute()"/>
    <div id="divId">
    hello, world!
    </div>

    既然把页面解析成一棵树,则必然存在用来操作树节点的方法,而且,节点之间肯定存在父子、兄弟关系。例如:

    //获取父节点
    divObj.parent;
    //获取下一个兄弟节点
    divObj.nextSibling;
    //获取上一个兄弟节点
    divObj.previousSibling;
    //获取第一个子节点
    divObj.firstChild;
    //获取最后一个子节点
    divObj.lastChild;

    注意:在返回时,空行算作一个空白文本节点

    2、方法中是用于对对象的操作,即相当于java中类的方法.例如:

    //添加节点
    appendChild(node);
    //通过标签名称获取节点,返回的都是数组
    getElementByTagName(name);
    //判断是否有子节点
    hasChildNodes();

    3、样式是CSS中的一些属性,也是HTML标签中用于改变数据表现方式中的属性值,在HTML标签中可以利用style来进行调用,在DOM中利用对象来调用,例如:

    <!--HTML中利用style来改变数据形式-->
    <div style="background-color:red"></div>
    <!--利用DHTML来调用样式-->
    <script type="text/javascript">
    var colorStatus = -1;
    function changeColor()
    {
        var divObj = document.getElementById("divId");
        if(colorStatus<0)
        {
            divObj.style.backgroundColor = "white";
            colorStatus = 0;
        }
        else if(colorStatus<1)
        {
            divObj.style.backgroundColor = "red";
            colorStatus = 1;
        }
        else if(colorStatus<2)
        {
            divObj.style.backgroundColor = "blue";
            colorStatus = 2;
        }
        else 
        {
            divObj.style.backgroundColor = "pink";
            colorStatus = -1;
        }        
    }
    </script>
    <input type="button" value="ColorChange" onclick="changeColor()"/>
    <div id="divId">
    hello, world!
    </div>

    4、集合,可以返回一组属性等,例如:

    //返回一个节点的所有子节点,注意children是数组
    var children = divObj.childNodes;
  • 相关阅读:
    《Forward团队-爬虫豆瓣top250项目-开发文档》
    结对-网页贪吃蛇游戏-项目总结
    Forward团队-爬虫豆瓣top250项目-模块测试过程
    Forward团队-爬虫豆瓣top250项目-模块开发过程
    Forward团队-爬虫豆瓣top250项目-项目总结
    《软件工程课程总结》
    课后作业-阅读任务-阅读提问-4
    《20171201-构建之法:现代软件工程-阅读笔记》
    Forward团队-爬虫豆瓣top250项目-最终程序
    课后作业-阅读任务-阅读提问-3
  • 原文地址:https://www.cnblogs.com/fantasy01/p/4102742.html
Copyright © 2020-2023  润新知