猿问

jQuery watch div

如果div中的内容发生变化,有什么办法可以观看?


假设我有:


<div id="hello"><p>Some content here</p></div>

5秒后的某个时间变为:


<div id="hello"><ul><li>This is totally different!</li></ul></div>

如何通过回调或其他方式通知我?在大多数情况下,我可以得到正在执行插入操作的JavaScript。但是我想知道是否有可能。


郎朗坤
浏览 455回答 3
3回答

守着星空守着你

没有原生的jQuery / DOM事件会在HTML / DOM内容更改时触发。您可以(如果您感到特别浪费)执行以下操作:$(function() {&nbsp; var $div = $("#hello");&nbsp; var html = $div.html();&nbsp; var checking = setInterval(function() {&nbsp; &nbsp; var newhtml = $div.html();&nbsp; &nbsp; if (html != newhtml) {&nbsp; &nbsp; &nbsp; myCallback();&nbsp; &nbsp; &nbsp; html = newhtml;&nbsp; &nbsp; }&nbsp; },100);&nbsp; function myCallback() {&nbsp; &nbsp; alert('content changed!');&nbsp; &nbsp; // if you only want it to fire once, uncomment the following:&nbsp; &nbsp; // clearInterval(checking);&nbsp; }});请记住,.html()每100毫秒调用一次可能不是提高网站性能的最佳方法。
随时随地看视频慕课网APP

相关分类

JQuery
我要回答