div内容发生变化时添加自定义属性

时间:2015-01-18 00:07:50

标签: javascript

我有一个空div(id =" parent"),其中第三方窗口小部件呈现一些内容(比如div和锚标签)。现在,我需要在窗口小部件呈现div和锚标签时添加一些自定义属性。

所以我有一个MutationObserver如下:

var parent = document.getElementById("parent");
var observer = new MutationObserver(function(mutations){
    functionToAddCustomAttributes();
});

observer.observe(parent, {
  subtree: true,
  childList: true
});

在functionToAddCustomAttributes()中,我有代码来添加属性。我的问题是,如果我添加属性,不应该再次调用MutationObserver,因为我正在更新#parent的子节点?它不应该导致无限循环吗?它看起来并不像我的代码中发生的那样,所以我只是想确保这是正确的方法。

如果没有,是否有任何其他方式在窗口小部件呈现内容时添加属性?

2 个答案:

答案 0 :(得分:0)

监听父div而不是MutationObserver的onDomSubTreeModified事件。在回调中添加自定义属性并使用return false;为了安全起见。

答案 1 :(得分:0)

在添加属性的代码之后,试试这个:

$('#parent').find('#someChild').attr('name', 'value');