Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как в теге отделить текст от соседних тегов (https://javascript.ru/forum/jquery/64935-kak-v-tege-otdelit-tekst-ot-sosednikh-tegov.html)

Altai 14.09.2016 16:19

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

Как мне получить "Нужный Текст" без текста из соседнего тега ?

рони 14.09.2016 16:27

Altai,
<div>
Нужный Текст
<span>Соседний тег</span>
</div>
<script>
var text =  document.querySelector('div').firstChild.data.trim();
alert(text);
</script>

Altai 14.09.2016 16:32

Цитата:

Сообщение от рони (Сообщение 428716)
Altai,
<div>
Нужный Текст
<span>Соседний тег</span>
</div>
<script>
var text =  document.querySelector('div').firstChild.data.trim();
alert(text);
</script>

firstChild - не вариант. Нужно универсальное решение, т.к. соседних тегов может быть несколько, а нужный текст может быть в конце или по середине. Я полагаю, что с этой задачей легче справиться на jquery, но логику придумать не получается

рони 14.09.2016 16:37

Altai,
тогда циклом по childNodes и собирайте нужный текст

рони 14.09.2016 16:44

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>

Altai 14.09.2016 17:01

О, спасибо большое, то что нужно!

dd_smol 14.09.2016 18:18

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


Часовой пояс GMT +3, время: 07:23.