В Internet Explorer 9 вызов splitText
в текстовом узле не обновляет childNodes
его родителя.В Chrome и Firefox он работает, как и ожидалось для https://developer.mozilla.org/En/DOM/Text.splitText.
Однако IE9 работает правильно, когда console.dir
вызывается у родительского узла текстового узла (?)
Пример:
<!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 оба корректно выводят:
2
2
При раскомментировании console.dir(e)
, сейчасIE9 выводит:
LOG: 1
LOG: [object HTMLParagraphElement] {}
LOG: 2
Это ошибка?Если это так, есть ли обходной путь для «обновления» и отображения фактического состояния childNodes
, кроме console.dir
?
Обновление То, что в данный момент работает, добавляет / удаляетузел, например:
var t = document.createTextNode("");
e.appendChild(t);
e.removeChild(t);