Javascript 添加元素
我正在尝试使用mutationsobserver只记录添加的节点。这是我到目前为止得到的。我不能通过这部分考试。我卡住了。我尝试在节点列表首次启动时获取节点列表索引计数,并仅使用该计数记录新添加的节点,但最终失败。我不知道如何做到这一点。老实说,直到今天早上我才知道这件事 这是我目前的剧本Javascript 添加元素,javascript,mutation-observers,Javascript,Mutation Observers,我正在尝试使用mutationsobserver只记录添加的节点。这是我到目前为止得到的。我不能通过这部分考试。我卡住了。我尝试在节点列表首次启动时获取节点列表索引计数,并仅使用该计数记录新添加的节点,但最终失败。我不知道如何做到这一点。老实说,直到今天早上我才知道这件事 这是我目前的剧本 const targetNode = document.getElementById('team_log_actual'); // Options for the observer (which mutat
const targetNode = document.getElementById('team_log_actual');
// Options for the observer (which mutations to observe)
const config = { attributes: true, childList: true, subtree: true };
// Callback function to execute when mutations are observed
const callback = function(mutationsList, observer) {
for(let mutation of mutationsList) {
if (mutation.type === 'childList') {
console.log('a node added.' + mutation.target);
var html = mutation.target;
var htmlstring = JSON.stringify(html);
console.log(html)
}
}
};
const observer = new MutationObserver(callback);
observer.observe(targetNode, config);
每次添加一个新的。我只想对添加的节点进行字符串化。您可以使用mutation.addedNodes查看哪些节点被添加到元素中。如果只想打印所有节点的innerHTML,可以执行以下操作:
console.log( Array.from( mutation.addedNodes ).map( node => node.innerHTML ).join('\r\n') );
这将首先将NodeList类型的addedNodes转换为数组,然后map将检索每个节点的innerHTML。然后,您可以将其连接在一起并打印出更改
下面的代码将模拟这种行为
对于配置,您不必检查属性或子树,childList将执行您希望它执行的操作
const targetNode=document.getElementById'team_log_actual';
//观察者要观察哪些突变的选项
常量配置={
属性:false,
儿童名单:是的,
子树:false
};
//观察到突变时执行的回调函数
const callback=函数mutationslist,观察者{
突变列表的let突变{
如果mutation.type==='childList'{
console.log Array.from mutation.addedNodes.map node=>node.innerHTML.join'\r\n';
}
}
};
const observer=新的mutationobserver回调;
observer.observetargetNode,配置;
设计数器=0;
设置间隔函数{
var span=document.createElement'span';
span.innerHTML='我是元素'+++计数器;
targetNode.appendChildspan;
}, 1000;