jquery控制table过滤,重新隔行变色

ecotimes 2009-12-10 07:27:51
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<style>
table{ width:400px; border:1px solid #FFF02F;border-collapse:collapse;}
tr{ cursor:pointer;}
td{ font:normal 12px/17px Arial;padding:2px;width:100px;}
th{ background:#FFF02F; font:bold 12px/17px Arial;text-align:left;padding:4px;border-bottom:1px solid #333;}
.even{ background:#FFF38F;} /* 偶数行样式*/
.odd{ background:#FFFFEE;} /* 奇数行样式*/
.selected{ background:#FF6500;color:#fff;}
</style>
<script src="../jquery/jquery-1.3.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
var $trs=$("#trs>tr"); //选择所有行
$trs.filter(":odd").addClass("odd"); //给奇数行添加odd样式
$trs.filter(":even").addClass("even");//给偶数行添加odd样式

//点击行,添加变色样式
$trs.click(function(e){
$(this).addClass("selected")
.siblings().removeClass("selected");
})

//实时筛选
$("#filter").keyup(function(){
$trs.show();
if(this.value!="")
{
$trs.hide()
.filter(":contains('"+this.value+"')").show();

}
})
})
</script>
</head>
<body>
过滤:<input type="text" id="filter" />
<table>
<thead>
<tr><th>姓名</th><th>性别</th><th>暂住地</th></tr>
</thead>
<tbody id="trs">
<tr><td>张山</td><td>男</td><td>浙江宁波</td></tr>
<tr><td>李四</td><td>女</td><td>浙江杭州</td></tr>
<tr><td>张山sss</td><td>男</td><td>浙江宁波</td></tr>
<tr><td>张山</td><td>男</td><td>浙江宁波</td></tr>
<tr><td>张山</td><td>男</td><td>浙江宁波</td></tr>
<tr><td>李四</td><td>女</td><td>浙江杭州</td></tr>
<tr><td>王五</td><td>男</td><td>湖南长沙</td></tr>
<tr><td>找六</td><td>男</td><td>浙江温州</td></tr>
<tr><td>Rain</td><td>男</td><td>浙江杭州</td></tr>
<tr><td>MAXMAN</td><td>女</td><td>浙江杭州</td></tr>
<tr><td>王五fd</td><td>男</td><td>湖南长沙</td></tr>
<tr><td>找df六</td><td>男</td><td>浙江温州</td></tr>
<tr><td>Rain12</td><td>男</td><td>浙江杭州</td></tr>
<tr><td>MAXMAN5</td><td>女</td><td>浙江杭州</td></tr>
</tbody>
</table>
</body>
</html>


我的要求是 : 键入一个字符后, 过滤后显示的行能重新各行变色 , 而不是用开始的隔行变色.

高手不吝赐教! 建议调试后再回答.
...全文
2476 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
至简黑白 2010-07-29
  • 打赏
  • 举报
回复
jQuery很强大!
ecotimes 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zswang 的回复:]
变化完后 重新计算一下就好了。

HTML code<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><title></title><style>
table{ width:400px; border:1px solid #FFF02F;border-collapse:collapse;}
tr{ cursor:pointer;}
td{ font:normal 12px/17px Arial;padding:2px;width:100px;}
th{ background:#FFF02F; font:bold 12px/17px Arial;text-align:left;padding:4px;border-bottom:1px solid #333;}
.even{ background:#FFF38F;}/* 偶数行样式*/
.odd{ background:#FFFFEE;}/* 奇数行样式*/
.selected{ background:#FF6500;color:#fff;}</style><scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script><scripttype="text/javascript">
$(function() {var $trs= $("#trs>tr");//选择所有行 $trs.filter(":odd").addClass("odd");//给奇数行添加odd样式 $trs.filter(":even").addClass("even");//给偶数行添加odd样式//点击行,添加变色样式 $trs.click(function(e){
$(this).addClass("selected")
.siblings().removeClass("selected");
})//实时筛选 $("#filter").keyup(function(){
$trs.show();if(this.value!="") {
$trs.hide()
.filter(":contains('"+this.value+"')").show();
}
$trs.removeClass("odd");
$trs.removeClass("even");
$trs.filter(":contains('"+this.value+"'):odd").addClass("odd");//给奇数行添加odd样式 $trs.filter(":contains('"+this.value+"'):even").addClass("even");//给偶数行添加odd样式 })
})</script></head><body>
过滤:<inputtype="text" id="filter"/><table><thead><tr><th>姓名</th><th>性别</th><th>暂住地</th></tr></thead><tbodyid="trs"><tr><td>张山</td><td>男</td><td>浙江宁波</td></tr><tr><td>李四</td><td>女</td><td>浙江杭州</td></tr><tr><td>张山sss</td><td>男</td><td>浙江宁波</td></tr><tr><td>张山</td><td>男</td><td>浙江宁波</td></tr><tr><td>张山</td><td>男</td><td>浙江宁波</td></tr><tr><td>李四</td><td>女</td><td>浙江杭州</td></tr><tr><td>王五</td><td>男</td><td>湖南长沙</td></tr><tr><td>找六</td><td>男</td><td>浙江温州</td></tr><tr><td>Rain</td><td>男</td><td>浙江杭州</td></tr><tr><td>MAXMAN</td><td>女</td><td>浙江杭州</td></tr><tr><td>王五fd</td><td>男</td><td>湖南长沙</td></tr><tr><td>找df六</td><td>男</td><td>浙江温州</td></tr><tr><td>Rain12</td><td>男</td><td>浙江杭州</td></tr><tr><td>MAXMAN5</td><td>女</td><td>浙江杭州</td></tr></tbody></table></body></html>
[/Quote]

确实 上次没看到 以为是引用我的

确实是解决了 thank you!!
passself 2009-12-14
  • 打赏
  • 举报
回复
楼主要是那样的话可能需要局部刷新或者重新载入页面才可以
jol_boy 2009-12-14
  • 打赏
  • 举报
回复
1楼不是已经满足了要求了么
ecotimes 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jade_black 的回复:]
JScript code$("#filter").keyup(function(){
$('tbody#trs tr').filter((":contains('"+this.value+"')").addClass("selected");
})
[/Quote]

你没看明白我的意思

我要的是筛选后 重新隔行变色

Thank you at the same time!
JADE_BLACK 2009-12-13
  • 打赏
  • 举报
回复
$("#filter").keyup(function(){
$('tbody#trs tr').filter((":contains('"+this.value+"')").addClass("selected");
})
ecotimes 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zswang 的回复:]
变化完后 重新计算一下就好了。
[/Quote]


我也知道是这样 可是写起来很难

期待高手
teerhu 2009-12-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zswang 的回复:]
变化完后 重新计算一下就好了。

HTML code<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><title></title><style>
table{ width:400px; border:1px solid #FFF02F;border-collapse:collapse;}
tr{ cursor:pointer;}
td{ font:normal 12px/17px Arial;padding:2px;width:100px;}
th{ background:#FFF02F; font:bold 12px/17px Arial;text-align:left;padding:4px;border-bottom:1px solid #333;}
.even{ background:#FFF38F;}/* 偶数行样式*/
.odd{ background:#FFFFEE;}/* 奇数行样式*/
.selected{ background:#FF6500;color:#fff;}</style><scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script><scripttype="text/javascript">
$(function() {var $trs= $("#trs>tr");//选择所有行 $trs.filter(":odd").addClass("odd");//给奇数行添加odd样式 $trs.filter(":even").addClass("even");//给偶数行添加odd样式//点击行,添加变色样式 $trs.click(function(e){
$(this).addClass("selected")
.siblings().removeClass("selected");
})//实时筛选 $("#filter").keyup(function(){
$trs.show();if(this.value!="") {
$trs.hide()
.filter(":contains('"+this.value+"')").show();
}
$trs.removeClass("odd");
$trs.removeClass("even");
$trs.filter(":contains('"+this.value+"'):odd").addClass("odd");//给奇数行添加odd样式 $trs.filter(":contains('"+this.value+"'):even").addClass("even");//给偶数行添加odd样式 })
})</script></head><body>
过滤:<inputtype="text" id="filter"/><table><thead><tr><th>姓名</th><th>性别</th><th>暂住地</th></tr></thead><tbodyid="trs"><tr><td>张山</td><td>男</td><td>浙江宁波</td></tr><tr><td>李四</td><td>女</td><td>浙江杭州</td></tr><tr><td>张山sss</td><td>男</td><td>浙江宁波</td></tr><tr><td>张山</td><td>男</td><td>浙江宁波</td></tr><tr><td>张山</td><td>男</td><td>浙江宁波</td></tr><tr><td>李四</td><td>女</td><td>浙江杭州</td></tr><tr><td>王五</td><td>男</td><td>湖南长沙</td></tr><tr><td>找六</td><td>男</td><td>浙江温州</td></tr><tr><td>Rain</td><td>男</td><td>浙江杭州</td></tr><tr><td>MAXMAN</td><td>女</td><td>浙江杭州</td></tr><tr><td>王五fd</td><td>男</td><td>湖南长沙</td></tr><tr><td>找df六</td><td>男</td><td>浙江温州</td></tr><tr><td>Rain12</td><td>男</td><td>浙江杭州</td></tr><tr><td>MAXMAN5</td><td>女</td><td>浙江杭州</td></tr></tbody></table></body></html>
[/Quote]
很好很强大^v^
王集鹄 2009-12-12
  • 打赏
  • 举报
回复
变化完后 重新计算一下就好了。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<style>
table{ width:400px; border:1px solid #FFF02F;border-collapse:collapse;}
tr{ cursor:pointer;}
td{ font:normal 12px/17px Arial;padding:2px;width:100px;}
th{ background:#FFF02F; font:bold 12px/17px Arial;text-align:left;padding:4px;border-bottom:1px solid #333;}
.even{ background:#FFF38F;} /* 偶数行样式*/
.odd{ background:#FFFFEE;} /* 奇数行样式*/
.selected{ background:#FF6500;color:#fff;}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
var $trs = $("#trs>tr"); //选择所有行
$trs.filter(":odd").addClass("odd"); //给奇数行添加odd样式
$trs.filter(":even").addClass("even");//给偶数行添加odd样式

//点击行,添加变色样式
$trs.click(function(e){
$(this).addClass("selected")
.siblings().removeClass("selected");
})

//实时筛选
$("#filter").keyup(function(){
$trs.show();
if(this.value != "") {
$trs.hide()
.filter(":contains('"+this.value+"')").show();
}
$trs.removeClass("odd");
$trs.removeClass("even");
$trs.filter(":contains('"+this.value+"'):odd").addClass("odd"); //给奇数行添加odd样式
$trs.filter(":contains('"+this.value+"'):even").addClass("even");//给偶数行添加odd样式
})
})
</script>
</head>
<body>
过滤:<input type="text" id="filter"/>
<table>
<thead>
<tr><th>姓名</th><th>性别</th><th>暂住地</th></tr>
</thead>
<tbody id="trs">
<tr><td>张山</td><td>男</td><td>浙江宁波</td></tr>
<tr><td>李四</td><td>女</td><td>浙江杭州</td></tr>
<tr><td>张山sss</td><td>男</td><td>浙江宁波</td></tr>
<tr><td>张山</td><td>男</td><td>浙江宁波</td></tr>
<tr><td>张山</td><td>男</td><td>浙江宁波</td></tr>
<tr><td>李四</td><td>女</td><td>浙江杭州</td></tr>
<tr><td>王五</td><td>男</td><td>湖南长沙</td></tr>
<tr><td>找六</td><td>男</td><td>浙江温州</td></tr>
<tr><td>Rain</td><td>男</td><td>浙江杭州</td></tr>
<tr><td>MAXMAN</td><td>女</td><td>浙江杭州</td></tr>
<tr><td>王五fd</td><td>男</td><td>湖南长沙</td></tr>
<tr><td>找df六</td><td>男</td><td>浙江温州</td></tr>
<tr><td>Rain12</td><td>男</td><td>浙江杭州</td></tr>
<tr><td>MAXMAN5</td><td>女</td><td>浙江杭州</td></tr>
</tbody>
</table>
</body>
</html>

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧