我试图找到选择的文本开始和结束。因此,在下面的文本中,如果我从“您好,世界!今天真是美好的一天!”中选择“世界!真好!”,则我将获得7作为开始坐标,并获得24作为结束坐标,并假设从零开始的索引。

这是如何实现的?

编辑:
我正在寻找不在任何<input><textarea>元素内的文本选择。

编辑:
决定使用禁用的<textarea>s的解决方案

最佳答案

我用这个:

/* Returns 3 strings, the part before the selection, the part after the selection and the selected part */
function getSelected()
{
  var u     = editor.val();
  var start = editor.get(0).selectionStart;
  var end   = editor.get(0).selectionEnd;

  return [u.substring(0, start), u.substring(end), u.substring(start, end)];
}

编辑器是$("#editor")或textarea /输入字段可能具有的ID。

用法:
var select = getSelected()
editor.val(select[0] + '<h1>'+ select[2] + '</h1>' + select[1]);

将选定的文本包装在H1中。如果未选择任何内容,则只会添加空的H1,但是您可以根据自己的喜好添加检查和功能。

**尚未在所有浏览器中进行测试,但可以在Chrome中使用**

09-04 06:13
查看更多