你好,
我有這樣的 html 代碼
<div id="box"></div>
然后我有了這個觀察者,所以如果添加了一個添加了資料的元素,就會執行一個函式。
new MutationObserver((mutations) => {
for (let mutation of mutations) {
if (mutation.type === 'childList' && mutation.addedNodes[0].dataset.added) {
loadstuff();
}
}
}).observe(box, {childList: true});
它有效,但當我洗掉元素時,我在控制臺上收到此錯誤:
未捕獲的型別錯誤:mutation. addedNodes[0] 未定義
在這里小提琴:https : //jsfiddle.net/dc63r7bg/1/
我怎樣才能擺脫那個錯誤?
謝謝你。
uj5u.com熱心網友回復:
您可以使用可選的鏈接運算子:
var box = document.getElementById("box");
function addit() {
box.insertAdjacentHTML('afterbegin', '<span id="elm" data-added="yes">element</span>');
}
function removeit() {
document.getElementById("elm").remove();
}
new MutationObserver((mutations) => {
for (let mutation of mutations) {
if (mutation.type === 'childList' && mutation.addedNodes[0]?.dataset.added) {
console.log('added');
}
}
}).observe(box, {
childList: true
});
<div id="box"></div>
<button onclick="addit()">Add</button>
<button onclick="removeit()">Remove</button>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/360656.html
標籤:javascript 突变观察者
上一篇:ReactNativeAndroidHTTP獲取失敗
下一篇:展平陣列中的物件
