如何利用JS代码选取textarea中的指定行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用JS代码选取textarea中的指定行相关的知识,希望对你有一定的参考价值。

参考技术A 【实例名称】
选取textarea中的指定行
【实例描述】
使用控件的focus或select方法,可以很方便地选取textarea的所有内容,但却无法实现某行的选取。本例讲解如何选取textarea中的指定行。
【实例代码】

<function getTxtRow(num, mytxt) //获取指定行的方法-第二个参数为文本框ID

//获取文本框内当前光标的位置
var range = document.getElementById(mytxt).createTextRange();
var rect = range.getClientRects();//返回一个矩形
var left = rect[0].left;
if(num > rect.length - 1 || num < 0)
return;
if(num == 0) //选择第一行的情况

//设置选择范围
var right = rect[0].right;
range.moveEnd("character",-range.text.length);
while(range.offsetLeft + range.boundingWidth < right)

range.expand("character");

return range;

else

//设置选择范围
var right = rect[num].right;
var range = getTxtRow(num - 1, mytxt);
range.moveStart("character",range.text.length + 1);
while((range.offsetLeft + range.boundingWidth) < right)

range.expand("character");

if(range.offsetLeft > left)
range.moveStart("character",-1);
return range;


//选择指定行数的方法
function getText(num)

var range = getTxtRow(num,"txt")//调用真正的获取行方法
if(range != null) //如果指定的行内容不为空

alert(range.text);
range.select(); //选择指定的行


</SCRIPT>本回答被提问者和网友采纳

js拷贝指定内容到剪切板

 function copyTextToClipboard(text) {  
  var textArea = document.createElement("textarea");   
  textArea.style.background = ‘transparent‘;  
  textArea.value = text;  
  document.body.appendChild(textArea);  
  textArea.select();  
  try {    
    var successful = document.execCommand(‘copy‘);    
    var msg = successful ? ‘successful‘ : ‘unsuccessful‘;          
  } catch (err) {  
  console.log(‘Oops, unable to copy‘);  
  }  
 document.body.removeChild(textArea);}

以上是关于如何利用JS代码选取textarea中的指定行的主要内容,如果未能解决你的问题,请参考以下文章

EasyUI扩展方法

如何在js中获取当前textArea有多少行

textarea 中的 CodeMirror(JS 代码突出显示)文本超出 textarea 宽度

textarea高度自适应问题

js实现 textArea 的 placeholder 换行

JavaFX:如何滚动到textarea中的特定行