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. va_list使用

    http://www.programfan.com/blog/article.asp?id=41937

  2. 【linux】linux下动态库so文件的一些认识

    来源:http://mypyg.iteye.com/blog/845915 so其实就是shared object的意思.今天看了上面的博客,感觉好吃力.赶紧做个笔记记录一下.下面的内容大多都是连接中 ...

  3. spring bean中scope="prototype“的作用

    今天写代码时,遇到个问题,问题大概如下:在写一个新增模块,当各文本框等输入值后,提交存入数据库,跳到其它页面,当再次进入该新增页面时,上次输入的数据还存在. 经过检查发现是,spring配置文件中,配 ...

  4. 【XLL API 函数】xlCoerce

    将 XLOPER/XLOPER12 转换为另一种类型,或是查询表格中的单元格值. 函数原型 Excel12(xlCoerce, LPXLOPER12 pxRes, 2, LPXLOPER12 pxSo ...

  5. 将txt多行文本合并成一行

    1.用word打开txt文本2.打开“替换”功能,查找内容“^p”,替换内容为“,”(均无双引号).即可把多列文字合并为一行.

  6. Meta标签实现阻止移动设备(手机、Pad)的浏览器双击放大网页

    一.背景 在当今这个移动设备发展越来越快,并且技术越来越成熟的时代,移动设备成了企业扩展业务不可或缺的重要领域之一,随之而来的是适应手机的网站层出不穷,在开发过程中,我们往往会遇到一个很尴尬的问题:移 ...

  7. 25个增强iOS应用程序性能的提示和技巧(中级篇)(2)

    25个增强iOS应用程序性能的提示和技巧(中级篇)(2) 2013-04-16 14:42 破船之家 beyondvincent 字号:T | T 本文收集了25个关于可以提升程序性能的提示和技巧,分 ...

  8. java Http原生 Get 和Post 支持代理认证

    import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import ...

  9. 分布式缓存系统Memcached简介与实践

    缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵 ...

  10. Android Service 与 IntentService

    Service 中的耗时操作必须 在 Thread中进行: IntentService 则直接在 onHandleIntent()方法中进行