Выделение Range
Здравствуйте.
Реализация выделения отдельных слов текста предлагает оборачивание в тег span: rng.surroundContents(span); При удалении: removeChild(); или замене replaceChild(); span удаляется со своим содержимым. Как элегантно, не городя лишнего удалить тег span? |
display: none; |
Цитата:
|
Цитата:
|
Цитата:
<!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> ни о чём </div> <button>Жми</button> <script> document.querySelector('button').onclick = function(){ var a = document.querySelector('.container>span'); var b = getComputedStyle(a).display; (b == 'none') ? a.style.display = 'inline' : a.style.display = 'none'; } </script> </body> </html> |
novitocnaforume,
вытащить циклом каждый |
Цитата:
Я привел это как факт :) А вопрос: Как элегантно, не городя лишнего удалить тег span? Выделенный текст заключен в span его удалять ненужно. |
Цитата:
|
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> |
Цитата:
|
Часовой пояс GMT +3, время: 01:38. |