【问题标题】:how can select before and after selected text in jquery如何在jquery中选择文本之前和之后选择
【发布时间】:2015-10-30 11:01:34
【问题描述】:

我想在文本框中找到所选文本之前和之后的文本

例如

<input id="selectionBox" />

示例: selectionBox 输入值等于“检查输入地址...”

用户在“检查添加”之后和“用于键入...”之前选择了“r”,我想将“r”之前和之后存储在单独的变量中

$('#selectionBox').select(function(e) { 
    var start = e.target.selectionStart;
    var end = e.target.selectionEnd;
    var selectedtext  = $('#selectionBox').val().substring(start, end);
    // find before and after selected text  
    //var beforeSel = before selection;
    //var afterSel = after selection;
})

编辑 1: 我想在文本之前和之后找到像这样更改 selctionBox 值的文本

var textboxValue = beforeSel + "<blank>" + selectedtext  + "<blank>" + afterSel;
$("#selectionBox").val(textboxValue);

怎么办?谢谢

【问题讨论】:

  • 如果你的相等字符很少,它应该如何工作?如果用户选择“e”?
  • 我编辑了我的问题,请查看,谢谢
  • 先获取#('selectionBox').val()的长度。那么你可以使用 substring() 方法来获取所有三个值

标签: jquery text input


【解决方案1】:

您只需使用与获取所选文本相同的技术。

substring(0, start)获取选择前的文本,substring(end)获取选择后的文本。

$('#selectionBox').select(function(e) {
  var start = e.target.selectionStart;
  var end = e.target.selectionEnd;
  var text = $('#selectionBox').val();
  
  var selectedtext = text.substring(start, end);
  
  // find before and after selected text
  var beforeSel = text.substring(0, start);
  var afterSel = text.substring(end);

  $('#selected-text').text(selectedtext);
  $('#before-selection').text(beforeSel);
  $('#after-selection').text(afterSel);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="selectionBox" />
<div>Selected Text: <span id="selected-text" style="color:blue"></span>
</div>
<div>Before Selection: <span id="before-selection" style="color:blue"></span>
</div>
<div>After Selection: <span id="after-selection" style="color:blue"></span>
</div>

【讨论】:

  • 非常感谢@forgivenson
猜你喜欢
  • 1970-01-01
  • 2012-01-07
  • 2020-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-05
  • 1970-01-01
相关资源
最近更新 更多