Javascript 如何选择<;中的所有文本;p>;标签?

Javascript 如何选择<;中的所有文本;p>;标签?,javascript,selection,Javascript,Selection,我想制作一个按钮,它将选择我的p标签中的所有文本。标签示例: <p class="foo"> some text <div>this div is child of p</div> <div>one more row</div> </p> 我认为,您的基本问题是元素不能是元素的子元素。您的在第一个打开时隐式结束 如果将元素更改为,则它们将位于中。您必须解决的下一个问题是.getElementsByClassName()返回

我想制作一个按钮,它将选择我的p标签中的所有文本。标签示例:

<p class="foo">
some text
<div>this div is child of p</div>
<div>one more row</div>
</p>

我认为,您的基本问题是
元素不能是
元素的子元素。您的
在第一个
打开时隐式结束

如果将
元素更改为
,则它们将位于
中。您必须解决的下一个问题是
.getElementsByClassName()
返回一个节点列表,而不是单个元素,因此代码必须考虑到这一点:

  range.selectNodeContents(txt[0]);

您需要更好地构建HTML,因为嵌套在
中的
无效,但:


使用以下答案:

您应该发布您迄今为止尝试过的代码。我可以使用div更改p。然后如何选择所有文本?我不知道您的意思;您也不能将一个
放入另一个
中。在我更新的答案中检查链接的代码笔。谢谢你的回答,它有帮助)尖尖的,你可以帮助,节点列表。我有很多元素p,但只想选择一个p的文本。我该怎么解决呢?@Roman好吧,首先你必须决定它的有趣之处是什么。谢谢你的回答。)
  range.selectNodeContents(txt[0]);