Сообщение от рони
|
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.