只要存在,就用另一个元素替换一个元素
replace one element with another whenever it exists
我正在尝试编写一个脚本,该脚本将在元素存在时用另一个元素替换一个元素。这意味着我需要在创建该元素后立即替换它,包括在加载页面时。
我尝试过使用MutationObserver,但没有成功。
var target = document.querySelector('#taskboard');
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if($(mutation.target).is('div.someClass')){
//Do a thing
}
});
});
config = { attributes: true, childList: true, characterData: true , subtree: true};
observer.observe(target, config);
很明显,我可以每秒钟检查一次元素并将其替换掉,但我怀疑这是否非常出色,当然也不优雅。
如何在任何时候检测一个元素的创建或存在,以便用另一个元素替换它?
您可以监听dom更改
var cb = function(e){
var elems = document.querySelectorAll('watchElem');
console.log(elems);
// do what you need to replace the elements
}
window.addEventListener("DOMContentLoaded", function () {
var el = document.documentElement;
el.addEventListener('DOMSubtreeModified', cb, false);
el.addEventListener('DOMNodeInserted', cb, false);
el.addEventListener('DOMNodeRemoved', cb, false);
}, false);
我本想找到一种方法来检测添加的元素,但我发现了一种成功的方法,即检测父元素的任何更改,然后搜索元素并替换它
MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
var observeDOM = (function(){
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
return function(obj, callback){
if( MutationObserver ){
// define a new observer
var obs = new MutationObserver(function(mutations, observer){
callback();
});
}
// have the observer observe foo for changes in children
obs.observe( obj, { childList:true, subtree:true , attributes: true, characterData: true});
}
})();
// Observe a specific DOM element:
observeDOM( document.getElementById('a real ID') ,function(mutations){
$('a valid selector').each(function(index, element){
bb = $.parseHTML('valid html');
$(element).replaceWith(bb);
})
});
相关文章:
- 只要存在,就用另一个元素替换一个元素
- 用HTML元素替换字符串的一部分
- 将父元素替换为其内容
- 单击时将SVG元素替换为另一个
- 用javascript(无jquery)将元素替换为文本
- 在不同的html文件中将html从一个元素替换为另一个元素
- 如何用另一个元素替换一个元素
- 将所有元素替换为另一个 jquery
- 使用本机 JS 将 HTML 元素替换为字符串内容
- 将 DOM 元素替换为仅开始标记(或结束标记)
- JQuery 将表单元素替换为文本
- 如何将 html 元素替换为 ajax 响应
- 将数组中的元素替换为相应的字典项 JavaScript
- JQuery:用另一组元素替换一组元素的优雅方式
- 将内容可编辑元素替换为有序列表时保持可编辑性
- 用新的克隆元素替换克隆元素
- 用新的DOM元素替换()任意文本
- 如何为没有ID的元素替换类名
- 如何使用regex将段落元素替换为新行
- 是否可以用另一个td元素替换HTML表td元素