原生js或者jQ 如何监听某dom元素变换

比如要实现以下效果

<div id="container">
    <div class="item">item1</div>   
    <div class="item">item2</div>   
    //   ....
</div>

像id为container的容器里面的内容会变换
比如会appendChild()一个item
比如会移除一个item
比如会吧item1 变成 ITEM1

每次发生以上变化时 会打印一个'1' console.log('1')

请问如何 实现

阅读 4.4k
5 个回答

IE浏览器有onpropertychange事件,其他浏览器目前没有很直接的解决办法,so上有一篇关于jquery监听div变化的帖子
http://stackoverflow.com/ques...

可以看一下MutationObserver监听dom变动,vue之前用到过,在UIWebView iOS > = 9.3.3是有兼容bug
观察者模式

没用兼容方法。如果开启定时器肯定不可取。
想要监听,只能通过一个中间对象来监听。你要改变一个元素,肯定会有操作,你的所有改变操作都通过一个中间对象,然后中间对象会做出反应,来达到监听变化的的效果。
可参考redux

首先你的这些变化都是通过某些函数的执行来实现的。不可能会凭空变化。
所以,你只要找到那个控制变化的功能函数,其完成后consol.log(1)就可以了

推荐问题
宣传栏