代码之家  ›  专栏  ›  技术社区  ›  James

使用javascript扩展文本选择

  •  0
  • James  · 技术社区  · 15 年前

    如果用户选择文本的一部分,我想将该选择扩展到第一行的开头和最后一行的末尾,如果它们在中间选择。

    最好的方法是什么?

    1 回复  |  直到 15 年前
        1
  •  2
  •   lazyboy    15 年前

    使用setselectionrange(beg,end)或selectionstart/selectionend更改选择。 基本上,从当前选择范围中,您尝试获取要选择的范围索引的索引(开始、结束),然后更改选择。 假设要将所选内容换行/扩展到最近的“换行”,下面是一个示例代码:

    var x = $("#input input:first")[0];
    var value = x.value;
    var NEWLINE = '\n'; // whatever is your newline delimiter.
    var start = value.substr(0, x.selectionStart).lastIndexOf(NEWLINE);
    if (start == -1) start = 0;
    var end = value.substr(x.selectionEnd).indexOf(NEWLINE);
    if (end == -1) end = value.length;

    x.设置选择范围(开始、结束); 或 x.selectionstart=开始,x.selectionend=结束;