Показать сообщение отдельно
  #11 (permalink)  
Старый 15.10.2015, 15:53
Интересующийся
Отправить личное сообщение для novitocnaforume Посмотреть профиль Найти все сообщения от novitocnaforume
 
Регистрация: 02.07.2015
Сообщений: 22

Сообщение от рони Посмотреть сообщение
novitocnaforume,
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>ГГ</title>
<style>
.container>span {
   color: red;
}
</style>
</head>
<body>
<div class="container">
  Этот текст
  <span>как всегда</span>
  ни о <span>чём</span>
</div>
<button>Жми</button>
    <script>
document.querySelector("button").onclick = function() {
    [].forEach.call(document.querySelectorAll(".container>span"), function(a) {
        for (var b = a.parentNode, c; c = a.childNodes[0];) b.insertBefore(c, a);
        b.removeChild(a)
    })
};
    </script>
</body>
</html>

До удаления span слово подсвечивается без проблем в любом, месте текста, т. е. создаваля объект Range, граничные точки setStart(); и setEnd();
После удаления span как то влияет на Range: текст в браузере, и по Firebug не сокращается, но в коде уменьшается на обертку span: alert(root.nodeValue); он как метка по которой уменьшаются слова в тексте.
Думал причина в области видимости переменных: выносил запрос за пределы функции.
Похоже решение связано с Range.
Ответить с цитированием