如何通过Id与变异观察者隐藏元素

时间:2015-04-22 16:04:46

标签: javascript mutation-observers

我已阅读https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/,但仍不确定如何配置以实现我的目标。

页面上有一个元素由代码生成器生成(所以我无法阻止bevahiour)。该元素有一个id“myid”,我只需要在浏览器中显示它就隐藏它。我的挑战是如何配置观察者,以便在显示元素时触发代码。

我已将我的问题作为评论插入,我认为我需要这里的帮助,但如果我错了,请引导我:

var target = document.querySelector('#myid');
 
var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {

  // how do I detect when the element is now on the page so that the next statement makes sense?
    document.getElementById("myid").style.visibility = "hidden";     
  });    
});
 
// what change do I need to make here?
var config = { attributes: true, childList: true, characterData: true }; 
 
observer.observe(target, config);
 
observer.disconnect();

1 个答案:

答案 0 :(得分:3)

为什么不简单地使用CSS?这样你根本不必担心什么时候创建项目,你不需要开始使用脚本。

#myid {
  visibility: hidden; /*!important; if necessary*/
}