全栈前端

DOM——基础

2018-06-06  本文已影响29人  前往悬崖下寻宝的神三算

技术是自由的靠山

本文长期更新,如有错误,还请指正
关注一下不迷路 =.=

理解DOM


DOM 将HTML文档表达为树结构,并定义了访问和操作 HTML 文档的标准方法。

DOM 节点就是html上所有的内容包括:

  1. 文档节点
  2. 元素节点(标签)
    元素可嵌套节点
  3. 元素属性节点
  4. 文本节点
  5. 注释节点

节点的属性


  1. nodeType 节点的类型(数字)
    元素 1
    属性 2
    文本 3
    注释 8
    文档 9

  2. nodeName 节点的名称
    元素即为标签名(大写)
    属性即为属性名
    文本为#text
    文档节点为#document

  3. nodeValue 节点的值
    元素的值是 undefinednull

节点操作(元素&文本)


> 创建

  1. document.createElement(tagName)
    创建元素节点

  2. document.createTextNode(text)
    创建文本节点

  3. document.createDocumentFragment()
    特殊,创建一个节点容器(透明容器)。
    用法:比如创建2个p,插入容器里,然后你在那这个容器插入其他节点,那么这2个p都会被插入,但容器不会被插入。

> 获取

  1. getElementById(id)
    返回一个dom对象

  2. getElementsByClassName(className)
    返回一个类数组

类数组
  1. getElementsByTagName(tagName)
    返回一个类数组

  2. getElementsByName(name)
    通过标签的name属性获取dom对象,因为name可能会同名所以返回多个
    注:ie中此方法也会返回同名id的dom

  3. querySelector(selector)
    返回第一个匹配元素
    querySelectorAll(selector)
    返回一个元素数组

> 复制

cloneNode([boolean])
参数为true则复制子节点

> 插入

  1. appendChild(node)
    后插入元素或文本

  2. insertBefore(node)
    前插入元素或文本

参数如果是一个已存在的节点,那么该节点会移动到新的地方,而不是复制一份

> 替换

relaceChild(new,old)

> 删除

removeChild() 删除子节点

//删除node本身
node. parentNode.removeChild(node);

节点的遍历


parentNode

nextElementSibling previousElementSibling
previousSibling nextSibling 包括空节点

自己

参见 上一个标题

  1. children 所有子节点(同样是类数组)
    childNodes 包括空节点

  2. firstElementChild lastElementChild 第一个子节点和最后一个子节点
    firstChild lastChild 包括空节点

节点的内容(元素)


  1. outerHTML 属性,元素及其内容(获取或设置)

  2. innerHTML 属性,元素的内容(获取或设置)
    innerHTML 效率很高,但是使用+=操作符时,效率低下

  3. innerText 属性,只获取文本内容(设置时相当于innerHTML)
    textContent 去除换行

属性节点(元素的attribute)


获取和设置

  1. . 语法
    js点语法操作标签属性时,会区分大小写,而且有些保留字会被转变,比如:htmlFor className

  2. hasAttribute()
    getAttribute()
    setAttribute()
    removeAttribute()

  3. attributes 属性
    返回所有标准属性和非标准属性(只读的类数组)

style对象

样式表 CSSStyleDeclaration { }
可以通过此对象设置样式

需要注意的是有些样式不可用点语法,比如 font-family

附:元素节点DOM对象

每个dom对象都有自己的特性,以及js对他们的控制方式

Document
Anchor
Area
Base
Body
Button
Canvas
Event
Form
Frame
Frameset
IFrame
Image
Input Button
Input Checkbox
Input File
Input Hidden
Input Password
Input Radio
Input Reset
Input Submit
Input Text
Link
Meta
Object
Option
Select
Style
Table
TableCell
TableRow
Textarea

详解: w3cschool

上一篇下一篇

猜你喜欢

热点阅读