| 編程(Programming)是編定程序的中文簡稱,就是讓計(jì)算機(jī)代碼解決某個(gè)問題,對(duì)某個(gè)計(jì)算體系規(guī)定一定的運(yùn)算方式,使計(jì)算體系按照該計(jì)算方式運(yùn)行,并最終得到相應(yīng)結(jié)果的過程。為了使計(jì)算機(jī)能夠理解(understand)人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計(jì)算機(jī)能夠理解的形式告訴計(jì)算機(jī),使得計(jì)算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計(jì)算體系之間交流的過程就是編程。 【實(shí)例名稱】 選取textarea中的指定行 【實(shí)例描述】 使用控件的focus或select方法,可以很方便地選取textarea的所有內(nèi)容,但卻無法實(shí)現(xiàn)某行的選取。本例講解如何選取textarea中的指定行。 【實(shí)例代碼】 <function getTxtRow(num, mytxt) //獲取指定行的方法-第二個(gè)參數(shù)為文本框ID
{
//獲取文本框內(nèi)當(dāng)前光標(biāo)的位置
var range = document.getElementById(mytxt).createTextRange();
var rect = range.getClientRects();//返回一個(gè)矩形
var left = rect[0].left;
if(num > rect.length - 1 || num < 0)
return;
if(num == 0) //選擇第一行的情況
{
//設(shè)置選擇范圍
var right = rect[0].right;
range.moveEnd("character",-range.text.length);
while(range.offsetLeft + range.boundingWidth < right)
{
range.expand("character");
}
return range;
}
else
{
//設(shè)置選擇范圍
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;
}
}
//選擇指定行數(shù)的方法
function getText(num)
{
var range = getTxtRow(num,"txt")//調(diào)用真正的獲取行方法
if(range != null) //如果指定的行內(nèi)容不為空
{
alert(range.text);
range.select(); //選擇指定的行
}
}
</SCRIPT>
【運(yùn)行效果】  【難點(diǎn)剖析】 本例的難點(diǎn)在于光標(biāo)的獲取,以及文本的選擇范圍。使用“createTextRange”方法獲取文本中光標(biāo)的位置。使用“getclientRects”選擇一個(gè)范圍,然后設(shè)置范圍的起始位置和結(jié)束位置。最后使用“select”方法選擇整行內(nèi)容。 【源碼下載】 本實(shí)例JS代碼下載
使用編程語言寫的程序,由于每條指令都對(duì)應(yīng)計(jì)算機(jī)一個(gè)特定的基本動(dòng)作,所以程序占用內(nèi)存少、執(zhí)行效率高。 |