Javascript 如何从DOM节点获取文本节点?

Javascript 如何从DOM节点获取文本节点?,javascript,Javascript,我试图用木箱装一个靶场物体 let range = document.createRange(); 你们都知道,我们必须打电话 range.setStart(startNode,startOffset) ; 及 我希望同时传递startNode和endNode的文本节点,因为如果传递DOM节点,则无法指定自定义偏移量。我的问题是如何获取元素的文本节点 我只是不想要文本作为字符串,我想要文本节点 假设我有一段话 <p id="para">This is a paragraph<

我试图用木箱装一个靶场物体

let range = document.createRange();
你们都知道,我们必须打电话

range.setStart(startNode,startOffset) ;

我希望同时传递startNode和endNode的文本节点,因为如果传递DOM节点,则无法指定自定义偏移量。我的问题是如何获取元素的文本节点

我只是不想要文本作为字符串,我想要文本节点

假设我有一段话

<p id="para">This is a paragraph</p>
但是我怎样才能得到段落中的文本节点呢

我希望它作为一个文本节点,而不仅仅是一个字符串。请帮忙


您可以使用
段落innerText
获取值
这是一个段落

更新:这应该适合你


const textNode=document.querySelector('#para').childNodes[0]

您可以使用
段落innerText
获取值
这是一个段落

更新:这应该适合你


const textNode=document.querySelector('#para').childNodes[0]

从中获取TextNode

 <p id="para">This is a paragraph</p>

这是从中获取TextNode的段落

 <p id="para">This is a paragraph</p>

这是一个段落

每个
doElement
都有一个可以访问的
childNodes
数组状对象。 尝试使用更改
textNode

const textNode = document.querySelector('#para').childNodes[0];

每个
doElement
都有一个
childNodes
类似数组的对象,您可以访问它。 尝试使用更改
textNode

const textNode = document.querySelector('#para').childNodes[0];

它返回字符串,而不是节点。它给出了一个错误---->Uncaught TypeError:未能对“Range”执行“setStart”:参数1不是“Node”类型。请尝试使用该字符串创建一个节点,使用
let textNode=document.createTextNode(para.innerText)
我尝试过它,但当我以那种方式创建时。它表示范围不在文档-->addRange()中:给定的范围不在文档中。我用JSFIDLE更新了问题,请检查是否有时间它返回字符串,而不是节点。它给出了一个错误---->Uncaught TypeError:未能对“Range”执行“setStart”:参数1不是“Node”类型。请尝试使用该字符串创建一个节点,使用
let textNode=document.createTextNode(para.innerText)
我尝试过它,但当我以那种方式创建时。它说该范围不在文档-->addRange()中:给定的范围不在文档中。我用JSFIDLE更新了问题,请检查您是否有time@Kaiido答案涵盖了一些有用的优势cases@Kaiido答案包括一些有用的边缘情况