如何利用JS代码选取textarea中的指定行
1个回答
2015-04-28 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517193
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
【实例名称】
选取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>
选取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>
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询