【DOM】1.概述
来源:互联网 发布:ecshop2.7.3源码下载 编辑:程序博客网 时间:2024/06/05 05:13
【注意:可以在浏览器打开网页程序按F12调试程序】
一、概述
- DOM:Document Object Model 文档对象模型
- 作用:将标记型文档(html,xml)以及文档中的标签等所有内容封装成对象。
浏览器内置了DOM技术的解析器,直接对标记型文档解析成对象, 驻留在内存中,并按照标签的层次关系生成一个DOM树。
正因为DOM将文档和内容解析成了对象,才有了动态操作的可能。
二、DHTML
- DHTML:多项技术综合体的简称,动态的HTML
- 包括:HTML/CSS/DOM/JS
- HTML:提供标签,用于封装数据。给数据加标签,它是最基础的部分。
- CSS:提供样式,用于对标签中的数据进行丰富的效果展现。
- DOM:提供解析,将标记型文档以及文档中内容都封装成了对象,在对象中定义更多的属性和行为。
- JS:提供逻辑性较强的程序设计内容,可以对对象的动作进行控制,负责的是页面的动态的行为。
三、BOM
- BOM:Browser Object Model 浏览器对象模型
- 将浏览器以及浏览器中的一些内容封装成对象
- 包括:
- Window(代表浏览器打开的一个窗口对象)
- history
- location
- document
- navigator
- Window(代表浏览器打开的一个窗口对象)
- 演示Window
<body> <script type="text/javascript"> function locationDemo() { //alert(location.href);//获取当前地址字符串 location.href = "http://www.baidu.com";//也可以设置地址 } </script> <!-- onclick添加监听机制 --> <input type="button" value="演示地址栏" onclick="locationDemo()"></body>
- 窗口移动演示
- 【这个效果我没有显示出来,如果有小伙伴弄出来,可以评论告诉我一下嘛]】
<body> <script type="text/javascript"> function moveDemo() { for(var i=0; i<500; i++) { moveBy(20,0);//右移20 moveBy(0,20);//上移20 moveBy(-20,0);//左移20 moveBy(0,-20);//下移20 } }</script><input type="button" value="演示窗口移动" onclick="moveDemo()" /></body>
- document演示:通过window对象获取窗体中的document对象
- 获取窗体中的document对象原因:因为标签都在文档中,想要获取标签就要先有document对象。
- getElementById(“id”);通过id属性,获取标签对象,若id不唯一,拿到的是程序中第一个是该id的标签。
<body> <script type="text/javascript"> function documentDemo() { var divNode = document.getElementById("divid");//通过id属性,获取标签对象 //alert(divNode.nodeName);//返回节点名称,DIV //alert(divNode.innerHTML);//获取div中的文本,DIV区域 divNode.innerHTML = "新文本".fontcolor("red");//设置新的div中的文本 } </script> <input type="button" value="演示DIV" onclick="documentDemo()"/> <div id="divid">DIV区域</div></body>
- getElementsByName(“name”);根据name标签属性,返回对象的集合(数组),因为name值可以重复(例如,性别单选框,分组)
- 凡是写着getElement**s**,返回的都是数组
<body> <script type="text/javascript"> function documentDemo() { var textNodes = document.getElementsByName("users");//返回的是数组 alert(textNodes.length); //alert(textNodes[0].type);拿到文本框的类型 //alert(textNodes[0].value);拿到文本框输入的值 //textNodes[0].value = "123";给文本框赋值 //对于textNodes[0]可以这样写 /* var textNode_0 = document.getElementsByName("users")[0]; textNode_0.value = "123"; */ }</script> <input type="button" value="演示document" onclick="documentDemo()"/> <input type="text" name="users"/> <input type="text" name="users"/></body>
- getElementsByTagName(“标签名”);//通过标签名获取对象,返回集合
<body> <script type="text/javascript"> function documentDemo() { /*var nodes = document.getElementsByTagName("div");//返回了页面中所有的div标签区域对象 for(var i=0; i<nodes.length; i++) { alert(nodes[i].innerHTML); }*/ //获取表格中的div(获取局部的某指定标签) var tableNodes = document.getElementById("tableID"); var divNodes = tableNodes.getElementsByTagName("div"); for(var i=0; i<divNodes.length; i++) { alert(divNodes[i].innerHTML); } } </script> <input type="button" value="演示document" onclick="documentDemo()"/> <div>DIV区域1</div> <table id="tableID"> <tr> <td>单元1</td> <td><div>DIV区域2</div></td> </tr> <tr> <td>单元3</td> <td><div>DIV区域3</div></td> </tr> </table></body>
- 按照节点层次关系获取节点
- 父节点:唯一性
- 子节点:不唯一,数组
- 兄弟节点:不同浏览器对兄弟节点解析不同(很少用)
<body> <script type="text/javascript"> function documentDemo() { var tableNodes = document.getElementById("tableID"); /* //获取表格节点的父节点(body) var node = tableNodes.parentNode; alert(node.nodeName);//BODY */ /* var node_2 = tableNodes.childNodes; alert(node_2.length);//2 //第一个子节点为#text //不同的浏览器处理方法不同,有的浏览器运行结果长度为1,即只有TBODY //第一个子节点为#text是因为把程序布局上的空白符算进去了,非IE都是#text,低版本IE不是#text) //第二个子节点是TBODY */ //获取表格节点的子节点(tr) var node_3 = tableNodes.childNodes[1].childNodes; alert(node_3.length);//4 for(var i=0; i<node_3.length; i++) { alert(node_3[i].nodeName);//TR #text TR #text 理由同上 } //获取兄弟节点开发时不要使用,有可能会获取到空文本节点#text } </script> <input type="button" value="演示document" onclick="documentDemo()"/> <table id="tableID"> <tr> <td>单元1</td> <td><div>DIV区域2</div></td> </tr> <tr> <td>单元3</td> <td><div>DIV区域3</div></td> </tr> </table></body>
0 0
- 【DOM】1.概述
- DOM概述
- DOM DOM概述
- DOM模型概述
- DOM概述--------------------DHTML简述
- 新长城 Dom 概述
- DOM模型概述
- DOM之概述
- MDN 文档对象模型 (DOM) - DOM概述
- DOM概述,隐藏显示div
- DOM分类和级别概述
- DOM(一)-01-(概述)
- 第2章DOM概述
- 【学习笔记】DOM Unit01-DOM概述 、 DOM树 、 选取元素
- 14.BOM&DOM-BOM和DOM的概述
- 文档对象模型DOM概述及DOM树
- 大家一起学——DOM概述
- 数据解析_SAX DOM JSON概述
- 论文阅读
- java中equals,hashcode和==的区别
- Eclipse"无痛"重构链接
- Java设计模式——行为型模式
- 悼念512汶川大地震遇难同胞
- 【DOM】1.概述
- Json 和 Jsonlib 的使用
- WebSocket 的使用,和客户端断电,服务器检测断开连接
- 进制之间转换相关问题
- 【OpenCV3图像处理】图像通道分离、通道合并、图像叠加混合
- kafka安装及测试
- opencv Mat数据的三种标准访问方式
- 数据表的操作
- SparkSQL中DataFrame常用API