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. 【leetcode】Pascal's Triangle I & II (middle)

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Retur ...

  2. 【linux】进程不要开太多,否则系统会卡死!

    今天在跑一个任务,大概像下面这样 python task.py -s input/ input文件夹下有两百多个文件,比如1.txt, 2.txt等等,task.py会顺序读取并做操作. 我想,这不是 ...

  3. UUID UDID

    Google搜索关键字Difference between UUID and UDID,在stackoverflow看见解释,我翻译过来,如下所述. UUID(Universally Unique I ...

  4. python基础——类和实例

    python基础——类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都 ...

  5. ALT+数字直接取得字符的原理

    字符 字节码 utf-8编码 机器二进制码 之间的联系 byte数组与二进制码关系参考文献 例如:字符“我” byte字节码是 [-26, -120, -111] 绝对值源码 [00011010, 0 ...

  6. Git - 使用指南

    GIT (分布式版本控制系统) 编辑 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.[1]  Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,可以 ...

  7. jquery学习笔记---this关键字

    1.    在JavaScript的变量作用域里有一条规则“全局变量都是window对象的属性”.当执行 checkThis() 时相当于 window.checkThis(),因此,此时checkT ...

  8. 【JAVA网络流之URL】

    一.URL URL对象可以认为是URLConnection对象+Socket对象. Java.lang.Object |-Java.net.URL 常用构造方法: URL(String spec)   ...

  9. poj 2503:Babelfish(字典树,经典题,字典翻译)

    Babelfish Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 30816   Accepted: 13283 Descr ...

  10. ytu 2558: 游起来吧!超妹!(水题,趣味数学题)

    2558: 游起来吧!超妹! Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 7  Solved: 3[Submit][Status][Web Board ...