核心Element对象

操作Element对象的属性

为了简化对attributes的处理,Element对象中包含了很多用来操纵Node对象的attributes属性的方法:

  • getAttribute(name);
  • setAttribute(name, value);
  • removeAttribute(name);

类似地,还有一些使用DOM Attr节点对象来操纵属性的方法:

  • getAttributeNode(name)方法取得指定属性的Attr节点
  • setAttributeNode(newAttr)方法使用Attr对象的实例来设置属性
  • removeAttributeNode(oldAttr)方法用来删除指定的属性节点

在Element对象中查找Element对象

在Element对象的范围内,可以用来查找其它节点的唯一有效方法是getElementsByTagName()。getElementsByTagName()方法返回的是一个NodeList对象,其中包括相应标签名称的引用;getElementsByTagName()方法返回的节点中只包含Element节点,不包括其它类型的节点。

Element对象中没有用于创建Element对象的方法;创建新DOM元素的操作完全由Document对象处理

核心Document对象

  • document.documentElement

**注意document/window.document返回的是整个文档;而访问文档根元素用document.documentElement;

使用Document对象的方法创建节点

Document对象包含很多用来创建DOM节点新实例的方法。包括:

  • createAttribute(name):创建节点类型为Node.ATTRIBUTE_NODE的Attr节点
  • createCDATASection(data):创建节点类型为Node.CDATA_SECTION_NODE的CDATASection节点
  • createComment(data):创建节点类型为Node.COMMENT_NODE的Comment节点
  • createDocumentFragment():创建节点类型为Node.DOCUMENT_FRAGMENT_NODE的DocumentFragment节点
  • createElement(tagName):创建节点类型为Node.ELEMENT_NODE的Element节点
  • createEntityReference(name):创建节点类型为Node.ENTITY_REFERENCE_NODE的EntityReference节点
  • createProcessingInstruction(target,data):创建节点类型为Node.PROCESSING_INSTRUCTION_NODE的ProcessingInstruction节点
  • createTextNode(data):创建节点类型为Node.TEXT_NODE的Text节点

使用Document对象的方法查找Element对象

核心Document对象中另外另个重要的方法是getElementsByTagName()方法getElementById()方法

虽然Document对象的getElementsByTagName()方法与Element对象的同名方法功能相同,不过从技术上讲,它们不是同一个函数。Document对象虽然不是继承自Element对象,但它却包含了功能相同的getElementsByTagName()方法,因而可以用这个方法来查询整个文档。

由于不适用于XML文档,所以DOM核心中没有包括getElementsByClassName,不过仍然可以在HTML中使用

DOM2 HTML

DOM2 HTML的规范包含所有HTML元素的特定对象;每个DOM2 HTML对象都是扩展自DOM2核心对象

操作Element对象的属性

当HTML文档呈现在浏览器中时,window.document实际上是HTMLDocument对象的实例。在上图中,HTMLDocument对象从核心的Document对象继承了所有成员,而且还添加了一些属性和方法,如下:

  • title:包含位于 'title' 标签的字符串
  • referrer:包含链接到当前页面的URL
  • domain:包含当前站点的域名
  • URL:包含当前页面的URL
  • body:引用从 'body' 节点开始的文档树
  • images:包含所有 'img' 标签的数组
  • applets:包含所有'applet'标签的数组
  • links:包含所有'link'标签的数组
  • forms:包含所有'form'标签的数组
  • anchors:包含所有'a'标签的数组
  • cookie:包含当前页面中所哟cookie信息的字符串
  • open():打开一个文档,以便接受write()或writeln()方法的输出
  • close:关闭当前的文档
  • write(data):将输入写入到文档中
  • writeln(data):将输入写入文档的同时写入一个换行符

DOM2 HTML的HTMLElement对象

继承自DOM2核心Element的HTMLElement对象,同样也添加了一些属性:

  • id:包含id属性的值
  • title:元素的标题
  • lang:语言代码
  • dir:文本的方向(默认是 从左向右 ltr)
  • className:包含所有class属性

DOM--3 DOM核心和DOM2 HTML(3)的更多相关文章

  1. 解密jQuery内核 DOM操作的核心函数domManip

    domManip是什么 dom即Dom元素,Manip是Manipulate的缩写,连在一起就是Dom操作的意思. .domManip()是jQuery DOM操作的核心函数 对封装的节点操作做了参数 ...

  2. Virtual DOM 虚拟DOM的理解(转)

    作者:戴嘉华 转载请注明出处并保留原文链接( #13 )和作者信息. 目录: 1 前言 2 对前端应用状态管理思考 3 Virtual DOM 算法 4 算法实现 4.1 步骤一:用JS对象模拟DOM ...

  3. React v16-alpha 从virtual dom 到 dom 源码简读

    一.物料准备 1.克隆react源码, github 地址:https://github.com/facebook/react.git 2.安装gulp 3.在react源码根目录下: $npm in ...

  4. 什么是DOM,DOM level 1\2\3 的区别是什么

    DOM 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.Document Object Model的历史可以追溯至1990年 ...

  5. -_-#【Dom Ready / Dom Load】

    Dom Ready和Dom Load DOM Ready 详解 javascript的domReady 域名解析 - 加载html - 加载js和css - Dom Ready - 加载图片等其他信息 ...

  6. js 字符串转dom 和dom 转字符串

    js 字符串转dom 和dom 转字符串 博客分类: JavaScript   前言: 在javascript里面动态创建标准dom对象一般使用: var obj = document.createE ...

  7. javascript DOM和DOM操作的四种基本方法

    在了解了javascript的语言特性后,javascript真正大放光彩的地方来了——这就是javascript DOM Javascript DOM DOM(Document Object Mod ...

  8. 精讲 org.w3c.dom(java dom)解析XML文档

    org.w3c.dom(java dom)解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会 ...

  9. 虚拟DOM Vitural DOM Tree

      提起Virtual DOM,总是给人一种高深莫测的感觉,大家都知道它比DOM快.那么Virtual DOM到底是何方神圣呢?在深入理解Virtual DOM之前,先让我们回顾一下DOM. 一.什么 ...

  10. DOM & Shadow DOM & Virtual DOM

    DOM & Shadow DOM & Virtual DOM What is the difference between Shadow DOM and Virtual DOM? ht ...

随机推荐

  1. 9.12/ css3拓展、js基础语法、程序基本知识、数据类型、运算符表达方式、语句知识点

    css3拓展: <display:none>  将某个元素隐藏       <visibility:hidden>  也是将某个元素隐藏 <display:block&g ...

  2. 让UserControl能显示焦点状态

    'set the control can display the focus status Protected Overrides Sub OnGotFocus(ByVal e As System.E ...

  3. MVC下HtmlHelper自带BeginForm表单提交与异步Ajax请求

    假如有一个数据表格UserInfo: public class UserInfo { public int Id { get; set; } public string Name { get; set ...

  4. C#冒泡排序

    C#最简单的冒泡排序,需要的朋友可作参考: 思路: 使用两个for循环,就可以遍历数组,这样就可以确保每个数组元素都被使用 对比前后两个数,将小的数字和大的交换位置,引入一个临时变量temp来进行交换 ...

  5. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(六) 之 Layim源码改造右键菜单--好友、组管理功能的实现。

    前言 上一篇中讲解了加好友的流程,本篇将介绍好友管理,群组管理的右键菜单功能.当然由于菜单项目太多,都实现也得花费时间.只讲解一下我是如何从不知道怎么实现右键菜单到会自定义菜单的一个过程.另外呢,针对 ...

  6. 使用vsphere client 克隆虚拟机

    免费的VMWare ESXi5.0非常强大,于是在vSphere5.0平台中ESXi取代了ESX.,使用ESXi经常会遇到这样的问题,我需要建立多个虚拟机,都是windows2003操作系统,难道必须 ...

  7. UITableView和UICollectionView的方法学习一

    参考资料 UITableView UICollectionView UICollectionViewDataSource UICollectionViewDelegate UICollectionVi ...

  8. iOS - UIButton设置图片文字上图下文排列

    经查阅资料及尝试,最终解决了在图片和文字垂直排列的情况下,如果文字长度变化会导致图片位置变动的问题,最开始采用了网上比较多的做法,做法如下: @interface UIButton (UIButton ...

  9. 查看局域网内在线的主机ip和mac地址

    ]# nmap -sP Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-12 22:43 CST Nmap scan report for 192. ...

  10. 注意kvm在安装虚机的时候不能把存放虚机的文件放在/root 下面

    如果放在/root下面会报错: WARNING KVM acceleration not available, using 'qemu' Starting install... Creating st ...