Подтвердить что ты не робот

JQuery: как выбрать текст между двумя закрытыми тегами html

Я пытаюсь обернуть текст intro/help в html-документе с помощью jQuery.It не находится внутри какого-либо тега, но между двумя закрытыми тегами html.

Пожалуйста, смотрите прилагаемый фрагмент кода, например. второй тег конца также может быть отличным от <p>.

var txtHelp = jQuery('b.page-title').nextUntil('p').text();
console.log(txtHelp);

//jQuery('b.page-title').nextUntil('p').text().wrap("<p />");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<b class="page-title"><h4>System Log</h4><hr class="text-primary"></b>
How to select this text and wrap it in new P-Tag
<p align="center">This can by any html tag</p>
4b9b3361

Ответ 1

nextUntil() не выбирает текстовые поля.

Текст node можно получить nextSibling свойство node и получить текстовое содержимое textContent свойство текста node.

var txtHelp = jQuery('b.page-title')[0] // get the dom object
  .nextSibling // get the text node next to it
  .textContent; // get text content
console.log(txtHelp);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<b class="page-title"><h4>System Log</h4><hr class="text-primary"></b>
How to select this text and wrap it in new P-Tag
<p align="center">This can by any html tag</p>

Ответ 2

Для чистого jQuery-подхода вы можете попробовать следующее:

var contents = $('b.page-title').contents(),
    textNodes = contents.filter(function() { return this.nodeType === 3; });

console.log(textNodes[0].textContent);

См. contents()