Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.09.2016, 16:19
Аспирант
Отправить личное сообщение для Altai Посмотреть профиль Найти все сообщения от Altai
 
Регистрация: 24.11.2013
Сообщений: 37

Как в теге отделить текст от соседних тегов
В общем для наглядности:
<div>
Нужный Текст
<span>Соседний тег</span>
</div>

Как мне получить "Нужный Текст" без текста из соседнего тега ?
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2016, 16:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Altai,
<div>
Нужный Текст
<span>Соседний тег</span>
</div>
<script>
var text =  document.querySelector('div').firstChild.data.trim();
alert(text);
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2016, 16:32
Аспирант
Отправить личное сообщение для Altai Посмотреть профиль Найти все сообщения от Altai
 
Регистрация: 24.11.2013
Сообщений: 37

Сообщение от рони Посмотреть сообщение
Altai,
<div>
Нужный Текст
<span>Соседний тег</span>
</div>
<script>
var text =  document.querySelector('div').firstChild.data.trim();
alert(text);
</script>
firstChild - не вариант. Нужно универсальное решение, т.к. соседних тегов может быть несколько, а нужный текст может быть в конце или по середине. Я полагаю, что с этой задачей легче справиться на jquery, но логику придумать не получается

Последний раз редактировалось Altai, 14.09.2016 в 16:36.
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2016, 16:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Altai,
тогда циклом по childNodes и собирайте нужный текст
Ответить с цитированием
  #5 (permalink)  
Старый 14.09.2016, 16:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Altai,
<div>
Нужный Текст
<span>Соседний тег</span>
</div>
<script>
var div = document.querySelector('div')
var text =  [].reduce.call(div.childNodes,function(str,el) {
if(el.nodeType == 3) str += el.data ;
return str
},'');
alert(text);
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 14.09.2016, 17:01
Аспирант
Отправить личное сообщение для Altai Посмотреть профиль Найти все сообщения от Altai
 
Регистрация: 24.11.2013
Сообщений: 37

О, спасибо большое, то что нужно!
Ответить с цитированием
  #7 (permalink)  
Старый 14.09.2016, 18:18
Аватар для dd_smol
Кандидат Javascript-наук
Отправить личное сообщение для dd_smol Посмотреть профиль Найти все сообщения от dd_smol
 
Регистрация: 08.03.2015
Сообщений: 131

На jQuery можно как-то так.
var text = $.trim( $('div').clone().children().remove().end().text() );

Последний раз редактировалось dd_smol, 14.09.2016 в 18:25.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести HTML-код как текст Dion Элементы интерфейса 2 28.09.2015 22:45
Изменяющийся блок clor Элементы интерфейса 9 22.08.2014 14:25
Сворачивание строк таблицы eFusion jQuery 6 13.05.2014 15:08
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30
На входе HTML получить на выходе просто текст, как? Dmitry Общие вопросы Javascript 2 25.08.2008 10:42