Javascript 如何仅获取<;p>;标记文本,包括<;span>;标签

Javascript 如何仅获取<;p>;标记文本,包括<;span>;标签,javascript,html,Javascript,Html,aaa bbb 我只想获取文本“aaa” 但是document.querySelector('p.aaa').innerText-->aaabb' 如何仅获取文本“aaa”?使用和和仅获取p的文本 运行下面的代码段 let text=document.querySelector('.aaa').childNodes[0].textContent.trim() console.log(text)///aaa aaa bbb此函数将从所选元素中排除任何子HTML元素的内容。它还将考虑子元素前后的文

aaa bbb

我只想获取文本“aaa”

但是
document.querySelector('p.aaa').innerText-->aaabb'

如何仅获取文本“aaa”?

使用和和仅获取
p
的文本

运行下面的代码段

let text=document.querySelector('.aaa').childNodes[0].textContent.trim()
console.log(text)///aaa

aaa bbb

此函数将从所选元素中排除任何子HTML元素的内容。它还将考虑子元素前后的文本值

函数getText(选择器){
返回数组.from(document.querySelector(selector).childNodes)
.reduce((文本,节点)=>text+(node.wholeText | |,'');
}
log(getText('p.aaa')

aaa bbb ccc

文档。查询选择器('p.aaa')。第一个孩子

将按原样返回您要求的文本。然后,如果需要删除可能不需要的额外空间,可以
trim()


但我也会检查该值是否为简单文本,如“aaa”或标记,以防您可能有其他元素满足选择器的要求,但其第一个子元素可以是html元素(标记),而不是简单文本。

您可以使用:
let text=document.querySelector('.aaa').childNodes[0].textContent.trim()

是段落的一部分,您必须将跨度和段落分开。我能想到的唯一办法是选择字母“aaa”和下面的索引。如果我已经帮助并解决了您的问题。如果
之后有另一个文本节点,这将不起作用。请原谅我实际考虑了其他实际用例。@fubar您可以原谅,伙计。别担心。