求助!=====限制表格某列操作的问题=====
有如下代码,已经实现输入条件过滤表格中所有单元格内容,现在我想限制其中某1列或几列不参加过滤,其余列参加.
也就是说网页制作人员通过简单操作表头控制某列不参加过滤,用户在页面上输入条件后过滤的是其余列中的单元格内容.请问该怎么写?
麻烦编写一个function(),然后通过对表头的操作,实现这一要求. 谢谢谢谢谢谢谢了:)~
对了,另外最好是还能使不参加过滤的列和其他列颜色不同.
<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!="")
{
for(var i=0;i<Tbl.rows.length;i++)
{
var tr=Tbl.rows[i];
if(tr.innerHTML.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";
}
}
</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 width="500" id="Tbl1" border="1">
<tr><td>12</td><td>34</td><td>45</td><td>45</td></tr>
<tr><td>呵呵</td><td>56</td><td>1911</td><td>2</td></tr>
<tr><td>12</td><td>55</td><td>1920</td><td>3</td></tr>
<tr><td>ddd</td><td>12</td><td>13</td><td>2356</td></tr>
<tr><td>呵呵</td><td>55</td><td>1877</td><td>rt</td></tr>
<tr><td>ddeed</td><td>11</td><td>12</td><td>hh</td></tr>
<tr><td>ddafd</td><td>58</td><td>1988</td><td>77</td></tr>
</table>
</center>
</body>
</html>
[解决办法]
[code=HTML][/code]
<html >
<head >
<title > </title >
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" / >
</head >
<body >
<center >
<script type="text/javascript" >
var filtercolumns="";
function Search(Tbl,TextValue)
{
var count=0;
var keyWord=TextValue.value;
if(keyWord!="")
{
for(var i=0;i <Tbl.rows.length;i++)
{
if(filtercolumns=="")
{
var tr=Tbl.rows[i];
if(tr.innerHTML.indexOf(keyWord)==-1)
tr.style.display="none";
else
{
tr.style.display="block";
count++;
}
}
else
{
var tfilter = filtercolumns.substr(0,filtercolumns.length-1);
var columns = tfilter.split('|');
var html = "";
for(var k=0;k<Tbl.rows[i].cells.length;k++)
{
var flag = true;
for(var j=0;j<columns.length;j++)
{
var col= columns[j];
if(col==k) flag=false;
}
if(flag==true)
{
html += Tbl.rows[i].cells[k].innerHTML;
}
}
if(html.indexOf(keyWord)==-1)
Tbl.rows[i].style.display="none";
else
{
Tbl.rows[i].style.display="block";
count++;
}
}
}
}
if(count==0)
{
ListAll(Tbl);
alert( '找不到你要的记录! ');
}
}
function ListAll(Tbl)
{
filtercolumns="";
for(var i=0;i <Tbl.rows.length;i++)
{
Tbl.rows[i].style.display="block";
for(var j=0;j<Tbl.rows[0].cells.length;j++)
{
Tbl.rows[i].cells[j].style.backgroundColor = '#ffffff';
}
}
}
function setFilter()
{
var obj = event.srcElement;
var column = obj.cellIndex;
var tab = obj.parentElement.parentElement;
if(obj.tagName!="TD")return;
if(filtercolumns.indexOf(column)>-1)
{
var temp = filtercolumns.replace(column+'|','');
filtercolumns = temp;
for(var i=0;i<tab.rows.length;i++)
{
tab.rows[i].cells[column].style.backgroundColor = '#ffffff';
}
}
else
{
var temp = filtercolumns+column+'|';
filtercolumns = temp;
for(var i=0;i<tab.rows.length;i++)
{
tab.rows[i].cells[column].style.backgroundColor = '#eeeeee';
}
}
}
</script >
<asp:Label ID="label1" runat="server">请点击列选择不参加过滤列</asp:Label>
<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 width="500" id="Tbl1" border="1" onclick="setFilter()">
<tr > <td >12 </td > <td >34 </td > <td >45 </td > <td >45 </td > </tr >
<tr > <td >呵呵 </td > <td >56 </td > <td >1911 </td > <td >2 </td > </tr >
<tr > <td >12 </td > <td >55 </td > <td >1920 </td > <td >3 </td > </tr >
<tr > <td >ddd </td > <td >12 </td > <td >13 </td > <td >2356 </td > </tr >
<tr > <td >呵呵 </td > <td >55 </td > <td >1877 </td > <td >rt </td > </tr >
<tr > <td >ddeed </td > <td >11 </td > <td >12 </td > <td >hh </td > </tr >
<tr > <td >ddafd </td > <td >58 </td > <td >1988 </td > <td >77 </td > </tr >
</table >
</center >
</body >
</html >