【发布时间】:2018-02-02 17:57:10
【问题描述】:
我正在尝试从可以有 0 - n 个副本并且可以动态添加的页面中获取特定的已删除元素属性。我开始使用 DOMNodeRemoved 事件,然后得知这是不推荐使用的,然后转向 MutationObserver。这是下面的代码示例 -
var deletionObserver = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.removedNodes.length > 0) {
var $target = jQuery(mutation.removedNodes);
lodash.forEach($target.find("Node"), function (value) {
..............
//Call
deletionObserver.observe(jQuery('body').get(0), {childList: true, subtree: true})
问题 - 我通过 removedNodes 对象获取了太多节点,例如,当我向页面添加 <p> 元素时,mutationObserver 在 removedNodes 对象中返回一个 <p> 节点。同样,当我删除一个<p> 时,我在removedNodes 对象中得到了一个额外的元素。有没有其他方法可以完全删除节点。我尝试在添加 <p> 元素时将 removedNode 与 jQuery("body") 进行比较。有点像 -
if(jQuery("body").find($target).length > 0)
这不起作用,我总是得到零。任何建议都会对您有所帮助。
【问题讨论】:
-
你能多贴一点你的代码吗?
标签: javascript jquery mutation-observers