私は要素のグループを観察しようとしています。要素の量は、様々であることができる:1からだから10どのようにMutationRecordがどこで起こったのか(複数のターゲット)を知るには?
$observedElements = document.querySelectorAll('em.price');
// in that time length will be 3.
// $observedElements[0] is a '<em class='price'>10.15</em>'
// $observedElements[1] is a '<em class='price'>35.00</em>'
// $observedElements[2] is a '<em class='price'>48.95</em>'
に..いくつかの要素の値が変更になったとき、MutationRecord.typeはCharacterDataを受信し
var observer = new MutationObserver(function(MutationRecord) {
MutationRecord.forEach(function(MutationRecord) {
if (MutationRecord.type == 'characterData') {
console.log ('got it ... in elem. № ? ');
// which element is affected by this mutation? [0], [1] or [2] ?
};
});
});
var observerConfig = { attributes: false, childList: true, characterData: true, subtree: true, };
for (var i = 0; i < $observedElements.length; i++) {
observer.observe($observedElements[i], observerConfig);
};
。 今の私の例では、$ obserElements [1]は'35 .00 'から'25 .00'に変更されます
しかし、この変更はemelent $ observedElements [1]にありましたか? 受信したtarget.textContentには、テキスト値のみが含まれます。
でルートを見つけることができるのはなぜ単に 'target'を使わないのでしょうか?あるいは、インデックスを知りたければ、 'for'ループで各要素のプロパティ(' __index'など)に 'i'を代入するだけです。 – wOxxOm
ありがとうございます。少し説明できますか?私は観測された要素にプロパティを追加する必要がありますか? $ observedElements [i] {'element_id':[i]} – sameuser
'target'は私の場合のテキストノードです(https://developer.mozilla.org/en-US/docs/Web/API/Text)。どのように私は突然変異が検出された要素を決定するためにそれを使用することができますか? – sameuser