zoukankan      html  css  js  c++  java
  • JavaScript中DOM

    概念

    什么是DOM

    1. 什么是 DOM


    DOM 的全称是document object model 它的基本思想是将结构化文佳例如HTML xml解析成一系列的节点。就像一颗树一样。

    所有的节点和最终的树结构,都有规范的对外接口,已使用编程语言的放大操作文档

    2. 节点

    DOM的最小组成单位叫做节点,节点组成一个文件的文档树

    节点名称含义
    Document 文档节点 整个文档(window.document)
    DocumentType 文档类型节点 文档的类型
    Element 元素节点 HTML 元素(比如<head>、<body>等)
    Attribute 属性节点 HTML 元素的属性(比如 class="right")
    Text 文本节点 HTML 文档中出现的文本
    DocumentFragment 文档碎片节点 文档的片段

    二、选取文档元素

    1. 通过 ID 选取元素

    <html>
    <body>
    <div id="my_div"></div>
    
    <script>
        document.getElementById("my_div").style.height="100px";  // 设置 my_div 高度为 100px
        document.getElementById("my_div").style.background="red"; // 设置 my_div 颜色为 红色
    </script>
    
    </body>
    </html>

    2. 通过名字(Name)或标签名(TagName)选取元素

    <html>
    <body>
    <input type="text" />
    <input type="text" />
    
    <script>
    document.getElementsByTagName("input")[0].value="hello";   // 下标为 [0] 表示选取第 1 个 input 标签
    document.getElementsByTagName("input")[1].value="shiyanlou"; // 下标为 [1] 表示选取第 2 个 input 标签
    </script>
    
    </body>
    </html

     

    三、节点、属性操作和文档遍历

    1. 查询和设置元素的属性

    <html>
    <head>
    <style>
    .class_1 {
        height:100px;
        100px;
        background:red;
    }
    .class_2 {
        height:100px;
        100px;
        background:blue;
    }
    </style>
    </head>
    
    <body>
    <div id="div_1" class="class_1"></div>
    <br/>
    <a>before:</a>
    
    <script>
    document.write(document.getElementById("div_1").getAttribute("class")); // 查询 div_1 的属性
    </script>
    
    <br/>
    <a>after:</a>
    
    <script>
    document.getElementById("div_1").setAttribute("class","class_2");  // 修改 div_1 的属性为 class_2
    document.write(document.getElementById("div_1").getAttribute("class")); // 再次查询 div_1 的属性
    </script>
    
    </body>

    父节点

    <html>
    <body>
    <div class="demo-parent">
        <div id="demo">        
        </div>
    </div>
    
    <script>
        document.write(document.getElementById("demo").parentNode.getAttribute("class"));
    </script>
    </body>
    </html>

    创建和插入节点

    <html>
    <body>
    <div style="background:#00F; height:100px"></div>
    <script>
        var mydiv = document.createElement("div");
        mydiv.style.height = "100px";
        mydiv.style.background = "red";
        document.getElementsByTagName("body")[0].appendChild(mydiv);
    </script>
    </body>
    </html>

    删除节点

    <html>
    <head>
    <body>
    <div>
        <div id="div_red" style="background:#F00; height:100px"></div>
        <div id="div_blue" style="background:#00F; height:100px"></div>
    </div>
    <script>
    function remove_red(){
        var obj = document.getElementById("div_red");
        obj.parentNode.removeChild(obj);
        }
    </script>
    <button onclick="remove_red()">remove red div</button>
    </body>
    </html>
  • 相关阅读:
    Qt编程规范
    QtZint编译过程记录(要使用 QTMAKE_CFLAGS += /TP 参数)
    中科同向备份软件Heartsone-backup(足足16个软件,可差异化备份虚拟机)
    单例(Singleton)模式
    COFF/PE文件结构
    模板样式优化
    如何测试网页的登录页面
    enode框架step by step之消息队列的设计思路
    服务承载
    CSS文件和Javascript文件的压缩
  • 原文地址:https://www.cnblogs.com/wangshouchang/p/6640715.html
Copyright © 2011-2022 走看看