Javascript.RU

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

Выделение Range
Здравствуйте.
Реализация выделения отдельных слов текста предлагает оборачивание в тег span: rng.surroundContents(span);
При удалении: removeChild(); или замене replaceChild(); span удаляется со
своим содержимым.
Как элегантно, не городя лишнего удалить тег span?
Ответить с цитированием
  #2 (permalink)  
Старый 15.10.2015, 12:16
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

display: none;
Ответить с цитированием
  #3 (permalink)  
Старый 15.10.2015, 12:23
Интересующийся
Отправить личное сообщение для novitocnaforume Посмотреть профиль Найти все сообщения от novitocnaforume
 
Регистрация: 02.07.2015
Сообщений: 22

Сообщение от EmperioAf Посмотреть сообщение
display: none;
span удаляется со своим содержимым: span.style.display = "none";
Ответить с цитированием
  #4 (permalink)  
Старый 15.10.2015, 12:26
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от novitocnaforume
При удалении: removeChild(); или замене replaceChild(); span удаляется со
своим содержимым.
вам не кажется это логичным?)
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #5 (permalink)  
Старый 15.10.2015, 12:29
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от novitocnaforume
span удаляется со своим содержимым: span.style.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>
Ответить с цитированием
  #6 (permalink)  
Старый 15.10.2015, 12:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

novitocnaforume,
вытащить циклом каждый children childNodes span и вставить перед span потом удалить сам span

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

Сообщение от nerv_ Посмотреть сообщение
вам не кажется это логичным?)

Я привел это как факт
А вопрос: Как элегантно, не городя лишнего удалить тег span?
Выделенный текст заключен в span его удалять ненужно.
Ответить с цитированием
  #8 (permalink)  
Старый 15.10.2015, 12:55
Интересующийся
Отправить личное сообщение для novitocnaforume Посмотреть профиль Найти все сообщения от novitocnaforume
 
Регистрация: 02.07.2015
Сообщений: 22

Сообщение от EmperioAf Посмотреть сообщение
<!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>
Выделенный текст заключен в span его удалять ненужно.
Ответить с цитированием
  #9 (permalink)  
Старый 15.10.2015, 13:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

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>
Ответить с цитированием
  #10 (permalink)  
Старый 15.10.2015, 13:07
Интересующийся
Отправить личное сообщение для novitocnaforume Посмотреть профиль Найти все сообщения от novitocnaforume
 
Регистрация: 02.07.2015
Сообщений: 22

Сообщение от рони Посмотреть сообщение
novitocnaforume,
вытащить циклом каждый children childNodes span и вставить перед span потом удалить сам span
Объектах Range имеет много свойств и методов, я думал это можно реализовать элегантно как в примере с оборачиванием в span: rng.surroundContents(span);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение в браузерах ТОТ_САМЫЙ Оффтопик 4 01.10.2015 01:12
Как передать value из change jquery в range jquery? drkrol jQuery 13 08.09.2015 22:36
document.execCommand и выделение sexyQuery Общие вопросы Javascript 1 08.07.2013 06:13
Выделение текста в текстовом поле. Как снять выделение с пробела вконце? Roman Koff Events/DOM/Window 10 01.07.2010 16:48
Выделение одиночных тэгов Pattern Events/DOM/Window 7 26.05.2009 23:29