zoukankan      html  css  js  c++  java
  • DOM

    DOM(Domcument Object Model)

    1. 是万维网联盟(W3C)的标准。
    2. 定义了访问html和xml文档的标准:"文档对象模型(DOM)是中立平台和语言的接口。允许程序和脚本动态的访问和更新文档内容、结构和样式。"
      分三部分:
    • DOM——针对任何文档的标准模型
    • XML DOM——针对XML文档
    • HTML DOM——针对HTML

    XML DOM

     XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法。

    HTML DOM

     HTML的标准对象模型,标准编程接口,W3C标准。
     定义了所有html元素的对象和属性。以及访问他们的方法。(是关于获取、修改、添加或删除html的标准)

    DOM节点

    HTML 文档中的所有内容都是节点:

    • 整个文档是一个文档节点
    • 每个 HTML 元素是元素节点
    • HTML 元素内的文本是文本节点
    • 每个 HTML 属性是属性节点
    • 注释是注释节点

    HTML DOM方法

    ——可以在节点(html)上执行的动作。
    编程接口
    通过JavaScript(及其他编程语言)对齐访问。
    元素为对象,编程接口则是对象方法和属性。
    方法:内够执行的动作。(添加或修改元素)
    属性:能够获取或设置的值。(节点名称或内容)。
    ___________________________
    getElementById()方法:返回带有指定id的元素。
    ___________________________
    HTML DOM对象-方法和属性
    一些常用的 HTML DOM 方法:

    • getElementById(id) - 获取带有指定 id 的节点(元素)

    • appendChild(node) - 插入新的子节点(元素)

    • removeChild(node) - 删除子节点(元素)
      一些常用的 HTML DOM 属性:

    • innerHTML - 节点(元素)的文本值
      +parentNode - 节点(元素)的父节点

    • childNodes - 节点(元素)的子节点

    • attributes - 节点(元素)的属性节点

    DOM对象方法

    方法 描述
    getElementById() 返回带有指定 ID 的元素。
    getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。
    getElementsByClassName() 返回包含带有指定类名的所有元素的节点列表。
    appendChild() 把新的子节点添加到指定节点。
    removeChild() 删除子节点。
    replaceChild() 替换子节点。
    insertBefore() 在指定的子节点前面插入新的子节点。
    createAttribute() 创建属性节点。
    createElement() 创建元素节点。
    createTextNode() 创建文本节点。
    getAttribute() 返回指定的属性值。
    setAttribute() 把指定属性设置或修改为指定的

    属性

    innerHTML属性:获取元素内容

    //获取id="intro"的<p>元素的innerHTML
    <html>
    <body>
    <p id="intro">Hello World!</p>
    <script>
    var txt=document.getElementById("intro").innerHTML;
    document.write(txt);
    </script>
    </body>
    </html>
    

    nodeName属性:规定节点名称

    • nodeName 是只读的
    • 元素节点的 nodeName 与标签名相同
    • 属性节点的 nodeName 与属性名相同
    • 文本节点的 nodeName 始终是 #text
    • 文档节点的 nodeName 始终是 #document
      nodeValue属性:规定节点的值。
    • 元素节点的 nodeValue 是 undefined 或 null
    • 文本节点的 nodeValue 是文本本身
    • 属性节点的 nodeValue 是属性值

    获取值实例

    <html>
    <body>
    
    <p id="intro">Hello World!</p>
    
    <script type="text/javascript">
    x=document.getElementById("intro");
    document.write(x.firstChild.nodeValue);
    </script>
    
    </body>
    </html>
    

    nodeType属性:返回类型。
    重要节点类型:

    元素类型 NodeType
    元素 1
    属性 2
    文本 3
    注释 8
    文档 9

    访问

    方式(1):getElementById() 方法
    语法:

    node.getElementById("id");
    

    实例:

    document.getElementById("intro");//id="intro"的元素
    

    方式(2):getElementsByTagName() 方法
    语法:

    node.getElementsByTagName("tagname");
    

    实例:

    document.getElementsByTagName("p");//获取文档所有<p>元素的列表
    
    document.getElementById("mian").getElementByTagName("p");
    

    方式(3): getElementsByClassName()方法
    语法:

    docuement.getElementByClassName("intro");//带有相同类名的所有HTML元素(包含class="intro"的所有元素列表)
    

    注释:在Inter Explorer 5,6,7,8中无效

    修改

    修改元素

    • 改变html内容
    • 改变css样式
    • 改变html属性
    • 创建新的html元素
    • 删除已有的html元素
    • 改变事件(处理程序)

    创建内容(改变一个

    元素的 HTML 内容)

    <html>
    <body>
    
    <p id="p1">Hello World!</p>
    
    <script>
    document.getElementById("p1").innerHTML="New text!";
    </script>
    
    </body>
    </html>
    

    改变样式

    <html>
    
    <body>
    <p id="p2">Hello world!</p>
    
    <script>
    document.getElementById("p2").style.color="blue";
    </script>
    
    </body>
    </html>
    

    添加新元素(必须先创建该元素(接点),然后把它追加都爱已有的元素上)

    <div id="d1">
    <p id="p1">This is a prograph.</p>
    <p id="p2">This is another pargraph.</p>
    </div>
    <script>
    var para= document.createElement("p");
    var node= document.createTextNode("This is new.");
    para.appendChild(node);
    var element = docuemt.getElementById("d1");
    element.appendChild(para);
    </script>
    
    /
    /
    var para=document.createElement("p");
    

    使用事件

    • 在元素上点击
    • 加载页面
    • 改变输入字段
    //按钮点击时改变<dody>元素的背景色
    <html>
    <body>
    <input type="button" onclick="document.body.style.backgroundColor='lavender';" value="Change background color"/>
    </body>
    </html>
    /
    /
    /函数
    <html>
    <body>
    <script>
    function ChangeBackground(){
     dovument.body.style.backgroundColor="lavender"
    }
    </sctript>
    <input type="button" onclick="ChangeBackground()" value="Change background color" />
    </body>
    </html>
    
    有些压力总是得自己扛过去,说出来就成了充满负能量的抱怨。寻求安慰无济于事,还徒增了别人的烦恼。而但你独自走过艰难险阻,一定会感谢当初一声不吭要牙坚持这的自己。没人在乎你怎样在深夜痛苦,也没人在乎你辗转反侧要熬过几个秋。外人只看结果,自己独撑过程。等我们都明白了这个道理,便不会再在人前矫情,四处诉说以求安慰。
  • 相关阅读:
    利用拦截器与自定义注解实现未登录拦截
    消息中间件activeMQ
    linux中redis的安装配置,后门漏洞修复及其攻击方法整合
    hibernate二级缓存
    初级程序员实战面试宝典(二)
    spring定时任务之-quartz调度器
    【微信小程序推广营销】教你微信小程序SEO优化,让你的小程序快人一步抢占先机
    ajax——CORS跨域调用REST API 的常见问题以及前后端的设置
    后台管理UI的选择
    微信小程序如何引入外部字体库iconfont的图标
  • 原文地址:https://www.cnblogs.com/Yokemadman/p/10231752.html
Copyright © 2011-2022 走看看