首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

====请问一个表格过滤有关问题,麻烦帮帮忙 :)=====

2012-02-24 
请教一个表格过滤问题,麻烦帮帮忙 :)有以下代码,已经实现随意点选进行单列过滤。我现在想加入一个

====请教一个表格过滤问题,麻烦帮帮忙 :)=====
有以下代码,已经实现随意点选进行单列过滤。
我现在想加入一个脚本,使程序员可以随便定义用户在多列中只能选择特定的几列进行过滤,请问要怎么写? 谢谢 

<html>  
<head>  
<title> </title>  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
</head>  
<body>  
<center>  
<script type="text/javascript">  
function Search(Tbl,TextValue) 
{  
var count=0;  
var keyWord=TextValue.value; 
if(keyWord==""){ 
alert("查询内容不能为空!"); 
TextValue.focus(); 
return; 

for(var i=0;i<Tbl.rows.length;i++) {  
var tr=Tbl.rows[i];  
if(Tbl.curCol<0){ 
if(tr.innerHTML.indexOf(keyWord)==-1){ //全局
tr.style.display="none"; 
}
else{ 
tr.style.display="block"; 
count++;  

}
else{ 
if(tr.childNodes(Tbl.curCol).innerText.indexOf(keyWord)==-1) //选择
tr.style.display="none";  
else{  
tr.style.display="block";  
count++;  
}  

}  
if(count==0){  
alert( '找不到你要的记录! ');  
ListAll(Tbl);  

}  
function ListAll(Tbl)  
{  
for(var i=0;i <Tbl.rows.length;i++)  
{  
Tbl.rows[i].style.display="block";  
}  
}  

function clickcolor()

if(event.srcElement.tagName!="td"&&event.srcElement.tagName!="TD"){ //判断触发事件的元素
return; 

var cancel=false; 
var colI=event.srcElement.cellIndex; 
for(var i=0;i <Tbl1.rows.length;i++){ 
if(Tbl1.curCol>=0){ 
Tbl1.rows(i).cells(Tbl1.curCol).bgColor=""; 

if(Tbl1.curCol!=colI){ 
Tbl1.rows(i).cells(colI).bgColor="red"; 
}else{ 
cancel=true; 

}
if(cancel){ 
Tbl1.curCol="-1"; 
}else{ 
Tbl1.curCol=colI; 


</script>  


<input name="ttt" id="ttt" type="text" style="width:200">  
<input type="button" value="查找" onclick="Search(Tbl1,ttt)" id="btFind">  
<input type="button" value="返回" onclick="ListAll(Tbl1)" id="btListAll">
<br >  
<table cellpadding=0 cellspacing=0 width="500" id="Tbl1" border="1" onclick=clickcolor() curCol="-1" >  
<tr><td>aaa</td><td>12</td><td>1988</td></tr>
<tr><td>呵呵</td><td>ghn</td><td>ol</td></tr>
<tr><td>12</td><td>x</td><td>s</td></tr>
<tr><td>ddd</td><td>12</td><td>13</td></tr>
<tr><td>呵呵</td><td>yt</td><td>1877</td></tr>
<tr><td>ddeed</td><td>11</td><td>12</td></tr>
<tr><td>ddafd</td><td>58</td><td>1988</td></tr>  
</table>  
</center>  
</body> 
</html>

[解决办法]
代码似曾相识啊,哈哈

<html >


<head >
<title > </title >
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" / >
</head >
<body >
<center >
<script type="text/javascript" >
function Search(Tbl,TextValue)
{
var count=0;
var keyWord=TextValue.value;
if(keyWord==""){
alert("查询内容不能为空!");
TextValue.focus();
return;
}
for(var i=0;i <Tbl.rows.length;i++) {
var tr=Tbl.rows[i];
if(Tbl.curCol <0){
if(tr.innerHTML.indexOf(keyWord)==-1){ //全局 
tr.style.display="none";

else{
tr.style.display="block";
count++;
}

else{
if(tr.childNodes(Tbl.curCol).innerText.indexOf(keyWord)==-1) //选择 
tr.style.display="none";
else{
tr.style.display="block";
count++;
}
}
}
if(count==0){
alert('找不到你要的记录!');
ListAll(Tbl);
}
}
function ListAll(Tbl)
{
for(var i=0;i<Tbl.rows.length;i++)
{
Tbl.rows[i].style.display="block";
}
}

function clickcolor() 
{
if(event.srcElement.tagName!="td"&&event.srcElement.tagName!="TD"){ //判断触发事件的元素 
return;

var colI=event.srcElement.cellIndex;
var cols=document.getElementById("cols").value.split(";");
var has=false;
for(var i=0;i<cols.length;i++){
if((cols[i]-1)==colI){
has=true;
}
}
if(!has){alert("不可以选择该列!");return;}
var cancel=false;
for(var i=0;i <Tbl1.rows.length;i++){
if(Tbl1.curCol >=0){
Tbl1.rows(i).cells(Tbl1.curCol).bgColor="";
}
if(Tbl1.curCol!=colI){
Tbl1.rows(i).cells(colI).bgColor="red";
} else{
cancel=true;
}
}
if(cancel){
Tbl1.curCol="-1";
} else{
Tbl1.curCol=colI;
}
}
</script >


<input name="ttt" id="ttt" type="text" style="width:200" >
<input type="button" value="查找" onclick="Search(Tbl1,ttt)" id="btFind" >
<input type="button" value="返回" onclick="ListAll(Tbl1)" id="btListAll" > 
<br >
<table cellpadding=0 cellspacing=0 width="500" id="Tbl1" border="1" onclick=clickcolor() curCol="-1" >
<tr > <td >aaa </td > <td >12 </td > <td >1988 </td > </tr > 
<tr > <td >呵呵 </td > <td >ghn </td > <td >ol </td > </tr > 
<tr > <td >12 </td > <td >x </td > <td >s </td > </tr > 
<tr > <td >ddd </td > <td >12 </td > <td >13 </td > </tr > 
<tr > <td >呵呵 </td > <td >yt </td > <td >1877 </td > </tr > 
<tr > <td >ddeed </td > <td >11 </td > <td >12 </td > </tr > 
<tr > <td >ddafd </td > <td >58 </td > <td >1988 </td > </tr >
</table > 
选择你可以查询的列,用;(分号)隔开<input type=text name=cols id=cols value="1;2"> 
</center >
</body >
</html >

看看符不符合你的要求!?

热点排行