<
table
id
="test"
>
< tr >
< td >< input value ="testsetsetestestsetsetsetset" ></ input ></ td >
< td >< input value ="aaabbbaaabbbaaa" ></ input ></ td >
< td >< input value ="testsetsetestestsetsetsetset" ></ input ></ td >
</ tr >
< tr >
< td >< input value ="aaacccbbbbcccc" ></ input ></ td >
< td >< input value ="testsetsetestestsetsetsetset" ></ input ></ td >
< td >< input value ="testsetsetestestsetsetsetset" ></ input ></ td >
</ tr >
</ table >
< textarea name ="txtBox" rows ="7" cols ="50" id ="txtBox" >
</ textarea >< br >
< input type ="text" value ="输入要查询的内容" id ="txtFind" >
< input type ="button" value ="表查找" onclick ="searchclick()" >
< input type ="button" value ="简单查找" onclick ="findText(txtFind.value)" >
< script language ="javascript" > ...
var searchobj = new Object;
var rng = new Object;
searchobj.row = -1;
searchobj.col = -1;
function searchclick()...{
findText2("test",txtFind.value);
}
function findText2(tabname,str)...{
var tab = document.getElementById(tabname);
var rowobj = tab.rows;
//行数
var rownum = rowobj.length;
if(searchobj.row != -1 && searchobj.col != -1 )...{
var trobj = tab.rows[searchobj.row];
//列数
var tdnum = trobj.cells.length;
//定义一个变量,作为moveStart()函数的偏移量,即开始点跳过选择文本
var num = 0;
if(document.selection)
num = document.selection.createRange().text.length;
//每次调用函数,结束点都为末尾,而开始点是跳过选择文本后的新开始点
rng.moveStart("character",num);
rng.moveEnd("character",rowobj[searchobj.row].cells[searchobj.col].childNodes[0].value.length);
//搜索到后选择文本
if(rng.findText(str))
rng.select();
if(rng.text==str)...{
return;
}
//如果上次查询结果是最后一列
if(searchobj.col < tdnum-1)...{
for(var ii=searchobj.col+1;ii<tdnum;ii++)...{
rng = rowobj[searchobj.row].cells[ii].childNodes[0].createTextRange();
//搜索到后选择文本
if(rng.findText(str))
rng.select();
if(rng.text==str)...{
searchobj.col = ii;
return;
}
}
}
//如果上次查询结果不是最后一行
if(searchobj.row != rownum-1)...{
for(var i=searchobj.row+1;i<rownum;i++)...{
var trobj = tab.rows[i];
//列数
var tdnum = trobj.cells.length;
for(var j=0;j<tdnum;j++)...{
if(rowobj[i].cells[j].childNodes[0].tagName == "INPUT")...{
rng = rowobj[i].cells[j].childNodes[0].createTextRange();
//搜索到后选择文本
if(rng.findText(str))
rng.select();
if(rng.text==str)...{
searchobj.row = i;
searchobj.col = j;
return;
}
}
if(i==rownum-1 && j==tdnum-1)...{
searchobj.row = -1;
searchobj.col = -1;
findText2(tabname,str);
}
}
}
}
else...{
searchobj.row = -1;
searchobj.col = -1;
findText2(tabname,str);
}
}
else
...{
for(var i=0;i<rownum;i++)...{
var trobj = tab.rows[i];
//列数
var tdnum = trobj.cells.length;
for(var j=0;j<tdnum;j++)...{
if(rowobj[i].cells[j].childNodes[0].tagName == "INPUT")...{
rng = rowobj[i].cells[j].childNodes[0].createTextRange();
//搜索到后选择文本
if(rng.findText(str))
rng.select();
if(rng.text==str)...{
searchobj.row = i;
searchobj.col = j;
return;
}
}
if(i==rownum-1 && j==tdnum-1)...{
alert("没有您要查找的内容");
}
}
}
}
}
var rng = document.body.createTextRange();
function findText(str)
...{
debugger;
if(str=="")
return;
//定义一个变量,作为moveStart()函数的偏移量,即开始点跳过选择文本
var num = 0;
if(document.selection)
num = document.selection.createRange().text.length;
//每次调用函数,结束点都为末尾,而开始点是跳过选择文本后的新开始点
rng.moveStart("character",num);
rng.moveEnd("character",txtBox.value.length);
//搜索到后选择文本
if(rng.findText(str))
rng.select();
//搜索到最后的范围还是找不到,则提示搜索完毕,并重新恢复rng最初的范围(否则无法执行新搜索)
if(rng.text!=str)
...{
alert("搜索完毕");
rng = txtBox.createTextRange();
}
rng = txtBox.createTextRange();
}
</ script >
< tr >
< td >< input value ="testsetsetestestsetsetsetset" ></ input ></ td >
< td >< input value ="aaabbbaaabbbaaa" ></ input ></ td >
< td >< input value ="testsetsetestestsetsetsetset" ></ input ></ td >
</ tr >
< tr >
< td >< input value ="aaacccbbbbcccc" ></ input ></ td >
< td >< input value ="testsetsetestestsetsetsetset" ></ input ></ td >
< td >< input value ="testsetsetestestsetsetsetset" ></ input ></ td >
</ tr >
</ table >
< textarea name ="txtBox" rows ="7" cols ="50" id ="txtBox" >
</ textarea >< br >
< input type ="text" value ="输入要查询的内容" id ="txtFind" >
< input type ="button" value ="表查找" onclick ="searchclick()" >
< input type ="button" value ="简单查找" onclick ="findText(txtFind.value)" >
< script language ="javascript" > ...
var searchobj = new Object;
var rng = new Object;
searchobj.row = -1;
searchobj.col = -1;
function searchclick()...{
findText2("test",txtFind.value);
}
function findText2(tabname,str)...{
var tab = document.getElementById(tabname);
var rowobj = tab.rows;
//行数
var rownum = rowobj.length;
if(searchobj.row != -1 && searchobj.col != -1 )...{
var trobj = tab.rows[searchobj.row];
//列数
var tdnum = trobj.cells.length;
//定义一个变量,作为moveStart()函数的偏移量,即开始点跳过选择文本
var num = 0;
if(document.selection)
num = document.selection.createRange().text.length;
//每次调用函数,结束点都为末尾,而开始点是跳过选择文本后的新开始点
rng.moveStart("character",num);
rng.moveEnd("character",rowobj[searchobj.row].cells[searchobj.col].childNodes[0].value.length);
//搜索到后选择文本
if(rng.findText(str))
rng.select();
if(rng.text==str)...{
return;
}
//如果上次查询结果是最后一列
if(searchobj.col < tdnum-1)...{
for(var ii=searchobj.col+1;ii<tdnum;ii++)...{
rng = rowobj[searchobj.row].cells[ii].childNodes[0].createTextRange();
//搜索到后选择文本
if(rng.findText(str))
rng.select();
if(rng.text==str)...{
searchobj.col = ii;
return;
}
}
}
//如果上次查询结果不是最后一行
if(searchobj.row != rownum-1)...{
for(var i=searchobj.row+1;i<rownum;i++)...{
var trobj = tab.rows[i];
//列数
var tdnum = trobj.cells.length;
for(var j=0;j<tdnum;j++)...{
if(rowobj[i].cells[j].childNodes[0].tagName == "INPUT")...{
rng = rowobj[i].cells[j].childNodes[0].createTextRange();
//搜索到后选择文本
if(rng.findText(str))
rng.select();
if(rng.text==str)...{
searchobj.row = i;
searchobj.col = j;
return;
}
}
if(i==rownum-1 && j==tdnum-1)...{
searchobj.row = -1;
searchobj.col = -1;
findText2(tabname,str);
}
}
}
}
else...{
searchobj.row = -1;
searchobj.col = -1;
findText2(tabname,str);
}
}
else
...{
for(var i=0;i<rownum;i++)...{
var trobj = tab.rows[i];
//列数
var tdnum = trobj.cells.length;
for(var j=0;j<tdnum;j++)...{
if(rowobj[i].cells[j].childNodes[0].tagName == "INPUT")...{
rng = rowobj[i].cells[j].childNodes[0].createTextRange();
//搜索到后选择文本
if(rng.findText(str))
rng.select();
if(rng.text==str)...{
searchobj.row = i;
searchobj.col = j;
return;
}
}
if(i==rownum-1 && j==tdnum-1)...{
alert("没有您要查找的内容");
}
}
}
}
}
var rng = document.body.createTextRange();
function findText(str)
...{
debugger;
if(str=="")
return;
//定义一个变量,作为moveStart()函数的偏移量,即开始点跳过选择文本
var num = 0;
if(document.selection)
num = document.selection.createRange().text.length;
//每次调用函数,结束点都为末尾,而开始点是跳过选择文本后的新开始点
rng.moveStart("character",num);
rng.moveEnd("character",txtBox.value.length);
//搜索到后选择文本
if(rng.findText(str))
rng.select();
//搜索到最后的范围还是找不到,则提示搜索完毕,并重新恢复rng最初的范围(否则无法执行新搜索)
if(rng.text!=str)
...{
alert("搜索完毕");
rng = txtBox.createTextRange();
}
rng = txtBox.createTextRange();
}
</ script >