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>
Ответы
Ответ 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()