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. 【XLL API 函数】xlSheetNm

    从外部引用包含的工作表ID返回工作表或宏表名称,或是当前表名称. 原型 Excel12(xlSheetNm, LPXLOPER12 pxRes, 1, LPXLOPER12 pxExtref); 参数 ...

  2. addsubview跟insertsubview的区别

    子视图是以栈的方式存放的. 每次addsubview时都是在最后面添加. 每次在addsubview前和addsubview后可以看看[self.view.subViews count]: 你看看你的 ...

  3. UbuntuLinux安装java

    jdk1.7,jdk1.8详情,参见:http://www.cnblogs.com/a2211009/p/4265225.html

  4. hdu 1257 最少拦截系统

    #include<time.h> #include <cstdio> #include <iostream> #include<algorithm> # ...

  5. 三、jQuery--jQuery基础--jQuery基础课程--第9章 jQuery 常用插件

    1.表单验证插件——validate 该插件自带包含必填.数字.URL在内容的验证规则,即时显示异常信息,此外,还允许自定义验证规则,插件调用方法如下:$(form).validate({option ...

  6. python中获取当前日期在当月是第几天

  7. 与你相遇好幸运,Tippecanoe在Centos下の安装

    全新的CentOS 7 x86_64 安装编译工具 yum install -y gcc automake autoconf libtool make yum insyall -y gcc gcc-c ...

  8. Delphi开发中各种文件扩展名代表什么文件

    暂时就遇到了以下这几种,以后遇到再进行补充 .DPR Delphi Project文件,打开这个文件,就会打开所有的编程的代码文件.包含了Pascal代码 .PAS Pascal文件,Pascal单元 ...

  9. centos(x86 64位系统)使用boost

    1. 安装gcc,g++,make等开发环境 yum groupinstall "Development Tools" 2. 安装boost yum install boost b ...

  10. CI框架获取post和get参数 CodeIgniter

    请参考:CI文档的输入类部分: $this->input->post() $this->input->get() ------------------------------- ...