DOM操作

2017-07-06  本文已影响0人  草鞋弟

基本介绍

文档对象模型 (DOM) 是HTML和XML文档的编程接口。它给文档(结构树)提供了一个结构化的表述并且定义了一种方式—程序可以对结构树进行访问,以改变文档的结构,样式和内容。
DOM 提供了一种表述形式将文档作为一个结构化的节点组以及包含属性和方法的对象。从本质上说,它将web 页面和脚本或编程语言连接起来了。

从以上论述,我们大概知道:

为测试方便,先构建一个结构树

结构树

1.document对象

每个载入浏览器的HTML文档都会成为document对象。document对象包含了文档的基本信息,我们可以通过JavaScript对HTML页面中的所有元素进行访问、修改。

document对象具有一些常用的属性:

在书写HTML文档的时候第一句一般都是doctype声明,可以通过document对象获取,没有则返回null;


通过访问documen的head属性或者body属性来获得文档树的head节点,以及body节点,这两个节点都是包括该元素的字节点的;


activeElement属性返回当前文档中获得焦点的那个元素。
用户通常可以使用tab键移动焦点,使用空格键激活焦点,比如如果焦点在一个链接上,此时按一下空格键,就会跳转到该链接

1.documentURI属性返回当前文档的网址


2.domain属性返回文档域名


3.lastModified返回当前文档的最后修改时间


location属性返回一个只读对象,提供了当前文档的URL信息


readyState属性返回当前文档的状态,共有三种可能的值

compatMode属性返回浏览器处理文档的模式,可能的值为

cookie是存储在客户端的文本;

innerText是一个可写属性,返回元素内包含的文本内容,在多层次的时候会按照元素由浅到深的顺序拼接其内容;
以之前构建的文档树为例,,返回了id为purchase元素节点下的文本内容.


innerHTML属性作用和innerText类似,但是不是返回元素的文本内容,而是返回元素的HTML结构,在写入的时候也会自动构建DOM;
outerHTML 返回内容还包括本身;

待补充.......................

2Element对象

除了document对象,在DOM中最常用的就是Element对象了,Element对象表示HTML元素。
DOM提供了一系列的方法可以进行元素的增、删、改、查操作;

对于元素操作有以下三种常用方法:

利用getElementById 利用标签来获取特定的元素节点对象 getElementsByName

以下两种方法要考虑兼容性的问题

删除元素使用removeChild()方法即可

clone元素
cloneNode()方法用于克隆元素,方法有一个布尔值参数,传入true的时候会深复制,也就是会复制元素及其子元素(IE还会复制其事件),false的时候只复制元素本身

属性操作

3.1 DOM节点对象的类型

DOM模型将html标签转换成JavaScript对象之后,根据标签的类型不同,也将dom节点对象分了一下类:

3.2 DOM节点关系

DOM文档对象模型将html文档转换成JavaScript对象之后,将标签之间的层级关系保留到JavaScript节点对象里面了

3.3 DOM节点添加、删除

创建节点对象:
(1) document.createElement();
(2) 确定该节点的位置

删除节点:
父节点.removeChild(子节点)

复习部分

dom对象的innerText和innerHTML属性一个是输出元素节点的文本,一个是输出该节点下的HTML结构,差异可以通过以下实例验证:

elem.children 和elem.childNodes区别在于:

查询元素有3种常见的方法

ES5的元素选择方法为:

创建元素: 通过createElement()方法来生成HTML元素节点;
设置属性: 通过setAttribute()方法用于设置元素属性;
删除属性: 通过removeAttribute()方法来删除元素属性;

通过元素的appendChild()方法给元素添加子元素,添加到元素末尾。
通过元素的removeChild()方法删除元素的子元素。

  <script>
  //选中所有的li元素
  var list = document.getElementsByTagName('li');
  console.log(list);
  var list = document.querySelectorAll('li');
  console.log(list);

  //选中btn元素
  var elem = document.getElementsByClassName('btn');
  console.log(elem);
  var elem = document.querySelectorAll('.btn');
  console.log(elem);
  </script>
上一篇 下一篇

猜你喜欢

热点阅读