3
Internet Explorer 9では、テキストノードでsplitText
を呼び出すと、その親のchildNodes
は更新されません。 ChromeとFirefoxでは、予想どおりhttps://developer.mozilla.org/En/DOM/Text.splitTextになります。 console.dir
は、テキストノードの親に呼び出されたときにIE9:splitTextの後にchildNodesは更新されませんか?
しかし IE9は適切に動作しない
例(?):
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<script type="text/javascript" charset="utf-8">
window.onload = function() {
var e = document.querySelector('#test p');
var f = e.childNodes[0].splitText(10);
console.log(e.childNodes.length)
// console.dir(e)
console.log(e.childNodes.length)
}
</script>
<div id="test">
<p>Senectus et netus et malesuada fames ac turpis egestas.</p>
</div>
</html>
IE9出力:
LOG: 1
LOG: 1
ChromeとFirefoxの両方正しく出力:
今console.dir(e)
のコメントを解除し、IE9出力:
LOG: 1
LOG: [object HTMLParagraphElement] {}
LOG: 2
は、これはバグですか?もしそうなら、console.dir
のほかに、実際の状態を「リフレッシュ」して反映させるための回避策がありますか?childNodes
?同様に、追加/ノードを削除された瞬間に動作するように見える何
更新:
var t = document.createTextNode("");
e.appendChild(t);
e.removeChild(t);
感謝。私はすでにパフォーマンスのペナルティがなく、うまく動作しているように思われる回避策を使用しています。 –