MDN上说的很清楚

MutationObserver给开发者们提供了一种能在某个范围内的DOM树发生变化时作出适当反应的能力.该API设计用来替换掉在DOM3事件规范中引入的Mutation事件

config

childList	观察目标节点的子节点(增, 删),则设置为true.
attributes 观察目标节点的属性节点(增,删,改)设为true. characterData 如果目标节点为characterData节点(一种抽象接口,具体可以为文本节点,注释节点,以及处理指令节点)时,也要观察该节点的文本内容是否发生变化,则设置为true. subtree 观察目标节点所包含的整棵DOM树上的上述三种节点变化,则设置为true. attributeOldValue
在attributes属性已经设为true的前提下,如果需要将发生变化的属性节点之前的属性值记录下来(记录到下面MutationRecord对象的oldValue属性中),则设置为true. characterDataOldValue 在characterData属性已经设为true的前提下,如果需要将发生变化的characterData节点之前的文本内容记录下来(记录到下面MutationRecord对象的oldValue属性中),则设置为true. attributeFilter 一个属性名数组(不需要指定命名空间),只有该数组中包含的属性名发生变化时才会被观察到,其他名称的属性发生变化后会被忽略.
// 有兼容的话 需要调整兼容性
var MutationObserver = window.MutationObserver;
// 需要观察的节点
var ele = document.querySelector('.a'); // // 创建观察者对象
var observer = new MutationObserver(function(MutationRecord, target) {
// 指定的DOM节点(目标节点)发生变化时被调用
MutationRecord.forEach(function(mutation) {
console.log(mutation);
});
}); // 配置观察选项:
var config = {
attributes: true,// 观察属性
childList: true,// 观察子节点
characterData: true, // characterData节点
attributeOldValue: true, // 记忆上一次的atrr值
} // 当前观察者对象注册需要观察的目标节点
// config 指定要观察的DOM变化类型.
observer.observe(ele, config) // 你还可以停止观察
// observer.disconnect(); // 添加一个 title属性
ele.title = 'hello world'
ele.title = 'hello alone' // 修改子节点
ele.innerHTML += ' ajanuw'

最新文章

  1. jQuery静态方法isFunction,isArray,isWindow,isNumeric使用和源码分析
  2. 改变spring-servlet.xml名字和默认位置
  3. ios 自定义键盘
  4. WP老杨解迷:评论数和下载量、榜单的关系
  5. http://ecgui.com/?hg=0&nr=0
  6. UVA 11090 Going in Cycle!!(二分答案+判负环)
  7. golang之interface
  8. Java I/O之NIO概念理解
  9. PyCharm 去掉自动保存功能
  10. SqlBulkCopy 批量insert
  11. Pleasant sheep and big big wolf HDU - 3046(最小割)
  12. python安装pandas模块
  13. linux中使sqlplus能够上下翻页
  14. 使用Synchronized块同步方法
  15. Required String parameter ' ' is not present
  16. 软工网络15-Alpha阶段敏捷冲刺
  17. BZOJ1266 [AHOI2006]上学路线
  18. [kernel]如何主动触发一次kernel panic
  19. css3动画(animation)效果3-正方体合成
  20. Matlab设置形状大小

热门文章

  1. postgresql 函数获取多个字段的数字大小值
  2. stingray中使用angularjs
  3. Eclipse 插件开发 -- 深入理解菜单(Menu)功能及其扩展点( FROM IBM)
  4. js事件探秘
  5. 【SqlServer】Sqlserver中的DOS命令操作
  6. Android 组件系列-----Activity生命周期
  7. Socket网络编程--小小网盘程序(2)
  8. [Big Data - ELK] ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
  9. buildroot 编译问题
  10. Java 8 StampedLock解决同步问题