如何选择范围内的HTML内容

时间:2014-11-16 16:08:23

标签: javascript html

我需要选择我的HTML内容(如高亮文本所示我可以复制它)。我想创建一个按钮,选择两个<div>或两个<p>之间的所有内容(任何标签)。查看codepen我需要选择的内容。

我找到了一些选择的想法,但我不确定(有点困惑)

<input onClick="this.setSelectionRange(0, 9999)" value="Sample Text" />
var range = document.createRange();
var sel = window.getSelection();
range.setStart(el.childNodes[2], 5);
range.collapse(true);

我希望它通过两个标签创建范围。
感谢您的帮助

1 个答案:

答案 0 :(得分:0)

根据Select all DIV text with single mouse click的Denis,您应该使用

function SelectText(element) {
 if (document.selection) {
  var range = document.body.createTextRange();
  range.moveToElementText(document.getElementById(element));
  range.select();
 } else if (window.getSelection) {
  var range = document.createRange();
  range.selectNode(document.getElementById(element));
  window.getSelection().addRange(range);
 }
}

从名为element的参数中选择元素中的文本。

为了确保您可以选择表格,您必须将其放在<div>

<div id="foo">
 <table>
  ...
 </table>
</div>

你必须对任何其他事情做同样的事情

<div id="bar">
 <p>
  ...
 </p>
</div>

然后,您可以使用此按钮选择该表:

<input type="button" onclick="SelectText(foo)" value="Select table">

对于其他div s:

<input type="button" onclick="SelectText(bar)" value="Select p">

让我知道它是否有效 快乐编码:) -Charlie