时间: 2021-07-31 作者:daque
常常情景下,大师都使沿用确定来确定textarea控件中含有几何行,然而,有这么一种情景,即是没有运用回车,而是字符过宽而textarea机动换的行,很明显,上头那种本领就不行行了.
这边,封装了一个本领gettextrange(num, areaid),这个本领只须要传入textarea的id及其须要的行号,即不妨归来指定行,为了精巧,这边没有归来指定行的文本,而是归来了指定行的一个trange东西,即使须要文本,只需挪用trange东西的text属性即可.
<script language="javascript">/** * added by lxcjie 2004.7.16 * 归来指定行的range东西 * num为行号,areaid为textarea的id */function gettextrange(num, areaid){ var range = document.all(areaid).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 = gettextrange(num - 1, areaid); 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 = gettextrange(num,"area") if(range != null) { alert(range.text); range.select(); }}</script><textarea cols="50" rows="10" id="area">客从东方来,衣上灞陵雨。问客何为来,采山因买斧。冥冥花正开,扬扬燕新乳。昨别今已春,鬓丝生几缕。</textarea><p>
<input type="button" onclick="gettext(0)" value="选第一条龙"><input type="button" onclick="gettext(1)" value="选第二行"><input type="button" onclick="gettext(2)" value="选第三行"><input type="button" onclick="gettext(3)" value="选第四行">