变异摘要库:如何将html元素附加到添加的元素

时间:2014-06-24 09:20:40

标签: javascript jquery google-chrome-extension mutation-observers

我正在使用Mutation Summary library观察何时添加了特定类型的元素,然后将html元素附加到每个元素:

var observer = new MutationSummary({
      callback: theNextPageLoaded,
      queries: [{
           element: "li.sweet"
      }]
});

function theNextPageLoaded(summaries) {
    var sc = summaries[0],
    sc_length = sc.added.length,
    btn = $('<button>', {
          class: 'my_btn',
          text: 'Please work!'
        });

    sc.added.forEach(function(newEl) {
      newEl.appendChild(btn);
      console.log(typeof(newEl));  //newEl's type is 'object'
    });
}

上面的代码不起作用。我不确定我甚至可以在对象上使用appendChild。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

你的问题是将Mutation Summary response和jQuery元素中的“裸”DOM元素混合在一起。纯DOM appendChild无法理解您的jQuery包装btn

所以,你需要让它们都是相同的类型:

$(newEl).append(btn); // jQuery
newEl.appendChild(btn.get(0)); // pure DOM

要么有效,但第一个可能更惯用。