BOM 浏览器对象模型
* window
      alert(); 弹出框
confirm() 询问框
setInterval("run()",1000); 每隔1秒执行run方法,返回唯一的id值
setTimeout("run()",1000); 一秒后执行run方法,返回唯一的id值
      clearInterval(id)
      clearTimeout(id)
      open(); 弹出新的窗口
      close(); 关闭窗口
 
* navigator
 
* history
* forward()
* back()
* go()
 
location
      href="设置或者获取链接"
 

dom将标签封装成对象,可以在对象中定义属性和行为,可以方便操作这些对象.

 
DOM在封装标记型文档,有三种模型
     DOM1: 针对html文档
     DOM2: 针对xml文档
     DOM3: 针对xml文档
 
DHTML: 是多项技术的综合体,叫做动态html.
 
标签之间存在着层次关系.

节点
     根据 DOM,HTML 文档中的每个成分都是一个节点。
     DOM 是这样规定的:
          整个文档是一个文档节点 
          每个 HTML 标签是一个元素节点 
          包含在 HTML 元素中的文本是文本节点 
          每一个 HTML 属性是一个属性节点 
          注释属于注释节点 

查找并访问节点,你可通过若干种方法来查找您希望操作的元素:
     通过使用 getElementById() 和 getElementsByTagName() 方法 
     通过使用一个元素节点的 parentNode、firstChild 以及 lastChild 属性
parentNode、firstChild以及lastChild
     可遵循文档的结构,在文档中进行“短距离的旅行”。

DOM节点信息

nodeName、nodeValue 以及 nodeType 包含有关于节点的信息。
     nodeName(节点名称) 
          文档节点的 nodeName 永远是 #document 
          元素节点的 nodeName 是标签名称 
          属性节点的 nodeName 是属性名称 
          文本节点的 nodeName 永远是 #text 
               注释:nodeName 所包含的 XML 元素的标签名称永远是大写的
 
     nodeValue(节点值)           
          对于文档节点是不可用的。
          对于元素节点是不可用的。
          对于属性节点,nodeValue 属性包含属性值。
          对于文本节点,nodeValue 属性包含文本。
 
     nodeType(节点类型) 
          nodeType 属性可返回节点的类型。
          最重要的节点类型是:

document 代表整个文档

Element 代表元素(标签对象)
     getAttribute("属性名称") 
     setAttribute("属性名称","属性的值") 
     removeAttribute("属性名称")
     
     Element.get
attrubute 代表属性对象
text 文本对象
node 节点对象
     nodeName 节点名称
     nodeType  节点类型
     nodeValue 节点值
 
IE6-8                                 IE9-11 Chrome FireFox
firstChild 第一个节点          firstElementChild  第一个节点
lastChild最后一个节点、     lastElementChild   最后一个节点
nextSibling 下一同级节点   nextElementSibling  下一同级节点
previousSibling 上一同级节点 previousElementSibling上一同级节点
<ul>
     <li></li>
     <li></li>
</ul>
     * 通过ul想获取第一个li的标签对象,使用firstElementChild属性
* (条件:IE9-11 Chrome FireFox)
* 如果使用的比较早版本,使用firstChild属性。
<span>
     文本内容
</span>
     * 通过span标签获取文本内容,直接使用firstChild属性。
* hasChildNodes() 判断是否包含子节点,返回true或者false
* hasAttributes() 判断是否有属性
 

节点的操作
在尾部添加子节点
     appendChild()     在末尾添加节点
     insertBefore(new,old)    在指定节点之前添加子节点
          注:没有insertAfter()方法
 
删除节点: 
     removeChild()
 
获取节点:
     cloneNode(boolean) 如果设置为true,子节点会被一起复制,如果为false或默认不写,则不会被复制
 
修改节点
     replaceChild(new,old) 老节点移动并占领新节点
 
判断节点:
 

innerHTML属性
     获取和设置文本内容
 
事件
     点击事件conclick ondbclick
     加载和卸载事件onload onunload
     聚焦和离焦 onfucus onblur
     键盘onkeyup
     改变 onchange
     控制表单提交 onsubmit

练习一:onsubmit练习

No.2 最后10分钟

XML语言
     可扩展的标记语言(自定义标签)
     和HTML非常的相似
 
XML约束  
 
解析XML(Java代码)

04 DOM一窥的更多相关文章

  1. 04: Dom

    目录: 参考W3school 1.1 获取标签:直接选择器和间接选择器 1.2 操作标签 1.3 DOM其他操作 1.4 DOM绑定事件的三种方法 1.5 DOM可以绑定的事件 1.1 获取标签:直接 ...

  2. 前端面试准备笔记之JavaScript(04)

    01. DOM的本质 xml是一种可扩展的标记性语言,可扩展就是可以描述任何结构的数据,他是一棵树,可以自定义标签,可以自己扩展. html也是一种特定的xml,他规定了一些标签的名称,结构与xml是 ...

  3. U1总结

    import java.io.Writer; import java.util.Iterator; import javax.xml.transform.TransformerFactory; imp ...

  4. Flutter 即学即用系列博客——04 Flutter UI 初窥

    前面三篇可以算是一个小小的里程碑. 主要是介绍了 Flutter 环境的搭建.如何创建 Flutter 项目以及如何在旧有 Android 项目引入 Flutter. 这一篇我们来学习下 Flutte ...

  5. ubuntu16.04 安装symfony3.3.11 碰到的问题:extension dom is required | oops an error occurred 500

    问题1:Uncaught exception 'RuntimeException' with message 'Extension DOM is required' 解决:sudo apt-get i ...

  6. vue2.* 双向数据绑定 Vue事件介绍 以及Vue中的ref获取dom节点 04

    <template> <div id="app"> <!-- 双向数据绑定(必须在表单里面使用) m:model v:view mvvm:model改 ...

  7. 04 前端之BOM与DOM

    目录 前端之BOM与DOM BOM与DOM操作 BOM操作 前端之BOM与DOM BOM与DOM操作 BOM 浏览器对象模型>>>:使用js操作浏览器 DOM 文档对象模型>& ...

  8. js算法初窥04(算法模式01-递归)

    终于来到了有点意思的地方--递归,在我最开始学习js的时候,基础课程的内容就包括递归,但是当时并不知道递归的真正意义和用处.我只是知道,哦...递归是自身调用自身,递归要记得有一个停止调用的条件.那时 ...

  9. 04.ubuntu下kvm 命令行安装64位ubuntu报"Couldn't find hvm kernel for Ubuntu tree."的问题

    1.安装ubuntu时使用的virt-install的配置: virt-install \ --name test4 \ --ram 1024 \ --disk path=/data/01_ubunt ...

随机推荐

  1. cocos2d-x 第二篇 HelloWorld的流程

    这篇博客主要是带领大家一起了解整个游戏的执行过程,其中涉及的一些譬如导演,场景,层之类的概念将会在后面讲解. 看main函数的区别: #import <UIKit/UIKit.h> // ...

  2. 瀑布流图片自动式 masonry

    <script type="text/javascript" src="<?php echo FRONT_PUBLIC;?>js/jquery-1.8. ...

  3. 解决win10无法完成更新 正在撤销更改

    删除Windows 更新缓存文件按Windows+X,选择“命令提示符(管理员)”:输入:net stop wuauserv,回车(此处会提醒服务停止):输入: %windir%\SoftwareDi ...

  4. Bootstrap学习(一)

    Bootstrap就是对jQuery的一次再开发,所以jQuery脚本引用必须在bootstrap脚本之前. 链接:http://www.cnblogs.com/vvjiang/p/5189804.h ...

  5. 关于ActionContext.getContext()的用法心得

    转: 为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest.HttpSession和ServletContext进行了封装, ...

  6. [LeetCode] Word Pattern

    Word Pattern Total Accepted: 4627 Total Submissions: 17361 Difficulty: Easy Given a pattern and a st ...

  7. GMap.Net开发之在地图上添加多边形

    上一篇介绍了在GMap上添加自定义标签(GMapMarker),这篇介绍在GMap上添加多边形(GMapPolyogn),并且介绍如何在地图上画任意的多边形. 如果已经知道了多边形的各个点的位置,就可 ...

  8. ORA-1461 encountered when generating server alert SMG-3500

    Doc ID 461911.1 Patch 6602742 Applies to: Oracle Database - Enterprise Edition - Version 10.2.0.3 an ...

  9. hdu 4734 数位dp

    给一个数A (十进制表示形式为AnAn-1An-2 ... A2A1,定义函数 F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1,给一个B, ...

  10. 修改Apache配置文件开启gzip压缩传输

    转自:http://down.chinaz.com/server/201202/1645_1.htm 最近无事研究一些Web的优化,用工具page speed检测网站时发现还没有开启gzip压缩,于是 ...