zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    sql被注入,用友不能建账
    项目总帐金额翻倍
    1)123104科目的余额出现翻倍情况,经调数据库,期初余额已调平,但余额表中的数仍是未调平前的错误数。2)一月结账时提示有一科目119101的总账与个人明细账不平....
    尚有已全部暂估报销的单据未进行处理,不能进行12月的期末处理
    用友U8尚有已全部暂估报销的单据未进行处理,不能进行12月的期末处理
    用sql替换T6工作流中的操作员
    解决win7科迈登录报错RASRDP MODULE已停止工作
    sql2005 64 位 连接 sql2000 32位
    jquery选择器
    深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法
  • 原文地址:https://www.cnblogs.com/fantasy01/p/4102742.html
Copyright © 2011-2022 走看看