Сообщение от Яростный Меч
|
насчет innerHTML - понятно почему, а textContent по идее должен работать так же.
|
Поковырялся в исходниках WebKit. Оказывается при установке textContent все дочерние элементы удаляются и создается новая текстовая нода, а при установке innerText если элемент содержит одну текстовую ноду, то просто устанавливается новое содержимое для нее.
Наглядно:
var container = document.createElement('div');
var childTextNode = container.appendChild(document.createTextNode('111'));
container.innerText = '222';
alert([childTextNode.data, childTextNode === container.firstChild]); // выдаст 222, а не 111
container.textContent = '333'
alert([childTextNode.data, childTextNode === container.firstChild]); // выдаст 222, false
Если текст будет содержать переносы или изначально нода будет содержать более одной ноды, то тесты могут дать другие результаты.