从P元素内部获取文本,而不在所选内容中包含span标记

Getting text from inside P element, not including span tag in selection

本文关键字:标记 span 包含 内部 元素 获取 取文本      更新时间:2023-09-26

如何从选择中删除span元素,以便只获取p标记中的文本,而不包括span标记或其内容?

<p><span class="title visible-xs-inline">Description: </span>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>

我试过使用.not(),但在这种情况下不起作用。

var theValue = $(this).parents().find('p').not('.title').text();

由于HTML结构,您需要检索textNode本身。试试这个:

var text = $('p').contents().last()[0].nodeValue;

小提琴示例

这个答案提供了一个很好的例子。只需克隆内存中的元素并删除其子元素,然后调用.text()

$('button').click(function() {
  var text = $("p")
    .clone() //clone the element
    .children() //select all the children
    .remove() //remove all the children
    .end() //again go back to selected element
    .text();
  alert(text);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><span class="title visible-xs-inline">Description: </span>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<button>Get P Text Not Including Span</button>