JsDom相关

Document Object Model 文档对象模型

1、概念

  文档(Document):就是指HTML或者XML文件
  节点(Node):HTML文档中的所有内容都可以称之为节点,常见的节点有
  元素节点 属性节点 文本节点 注释节点
  元素(Element):HTML文档中的标签可以称为元素

2、结构概念

  父节点 当前节点的父级
  子节点 当前节点的子级
  兄弟节点 和当前节点同属一个父级的节点

3、.获取元素

  getElementById
  getElementsByTagName 通过标签名寻找一类元素(伪数组)

4、设置属性

  元素对象.属性名 = “属性值”;
  <标签 属性名=”属性值”>

5、绑定事件

  事件三要素
  事件源.事件 = function(){ 事件处理程序 };
  对象方法中的this永远指的是该方法所属的那个对象

6、常用属性

常用标签属性:

 DOM对象的属性和HTML的标签属性几乎是一致的,常用的有src、title、className、href和style

内部文本属性:

 innerHTML 获取和设置标签中的内容,设置的内容会当作节点对象被解析到DOM树上
 innerText 获取和设置标签中的内容,设置的内容会被当作普通文本(有兼容性问题,旧版ff不支持)
 textContent获取和设置标签中的内容,设置的内容会被当作普通文本(有兼容性问题,旧版IE不支持)

常用表单属性:

 常见的表单元素属性有: type、value、checked、selected、disabled
 type设置input元素的类型
 value设置input元素的值
 checked设置input元素是否选中
 selected 设置下拉列表select中的option是否被选中
 disabled 设置input元素是否被禁用
 获取焦点事件是onfocus 失去焦点事件是onblur

自定义属性–必须以data-开头:

 getAttribute() 获取标签属性
 setAttribute() 设置标签属性
 removete() 移除标签属性

7、节点

  childNodes //子节点
  children //子元素
  nextSibling //下一个兄弟节点
  nextElementSibling //下一个兄弟元素 有兼容性问题
  previousSibling//上一个兄弟节点
  previousElementSibling //上一个兄弟元素 有兼容性问题
  firstChild //第一个节点
  firstElementChild //第一个子元素 有兼容性问题
  lastChild //最后一个子节点
  lastElementChild //最后一个子元素 有兼容性问题
  parentNode //父节点 (一定是元素节点,所以无需处理)

8、样式属性

  style属性是对象,style对象的属性是字符串
  style只能获取和设置行内样式
  JS中 - 不能作为标识符,涉及到计算的时候必须直接通过JS加样式

9、动态创建元素

  ①插入和移除节点
    在父元素中的最后追加子元素:father.appendChild(要追加的元素);
    在父元素中的某个子元素前面插入子元素:father.insertBefore(要插入的元素,插到这个元素的前面);
    从父元素中移除子元素:father.removeChild(要移除的子元素);
  ②js动态创建结构
    方式一:直接在文档中书写 document.write(“内容”)
    方式二:改变元素对象内部的HTML:innerHTML=”内容”
    使用 字符串 或者 数组 先拼接再用innerHTML去添加到页面
    方式三:创建或克隆节点并追加,参数是一个布尔值 true表示深层复制 false是浅层复制
  document.createElement()
  document.cloneNode()