jQuery 数据列表快速查询

本文章摘编、转载需要注明来源 http://blog.csdn.net/shadowsick/article/details/8881892


我们的table列表一般有多条数据,如何让用户快速看到自己想看到的数据呢,这个时候再查询一次数据很明显效率不够高,我们可以尝试将符合条件的tr记录移动到首行


下面我们来做个小小的demo,估计数据量太大量的时候效果有点慢,具体调优的自行研究


先写个html加个table列表

<body style="color:#999999;">
	<input type="hidden" value="" id="searchv"/>
	<table>
		<tr><input type="text" id="search" style="width:200px;color:#cccccc;" value="可输入姓名/英文名查询" /> <a href="#" id="sub">查询</a></tr>
	</table>
	<table style="border:solid thin #cccccc">
		<thead>
			<tr>
				<td align="center" width="15%">序号</td><td align="center" width="15%">姓名</td><td align="center" width="15%">英文名</td><td align="center" width="15%">年龄</td><td align="center" width="15%">操作</td>
			</tr>
		</thead>
		<tbody>
			<tr sel="sel" vl="张三%zhangsan">
				<td align="center">1</td><td align="center">张三</td><td align="center">zhangsan</td><td align="center">20</td><td align="center">修改 删除</td>
			</tr>
			<tr sel="sel" vl="李四%lisi">
				<td align="center">2</td><td align="center">李四</td><td align="center">lisi</td><td align="center">21</td><td align="center">修改 删除</td>
			</tr>
			<tr sel="sel" vl="王五%wangwu">
				<td align="center">3</td><td align="center">王五</td><td align="center">wangwu</td><td align="center">22</td><td align="center">修改 删除</td>
			</tr>
			<tr sel="sel" vl="朱六%zhuliu">
				<td align="center">4</td><td align="center">朱六</td><td align="center">zhuliu</td><td align="center">23</td><td align="center">修改 删除</td>
			</tr>
		</tbody>
	</table>
</body>


基本的数据有了,我们就来用jQuery操作下这些记录行吧,先引入jQuery的包,当然你可以不用这个库,只要你用原生的js里找到差不多的方法就可以了

<script type="text/javascript" src="core.js"></script>
<script type="text/javascript">
	var tips = "可输入姓名/英文名查询";
	var clr = "#cccccc";
	jQuery(function(){
		jQuery("#search").focus(function(){
			// 获得焦点情况
			if(jQuery(this).val() == tips)
				jQuery(this).val("").css("color","");
			else if(jQuery(this).val() != "")
				jQuery(this).css("color","");
		}).blur(function(){
			// 失去焦点情况
			if(jQuery(this).val() == "")
				jQuery(this).val(tips).css("color",clr);
		}).keyup(function(){
			// 按键触发快速查询事件
			var search = jQuery.trim(jQuery(this).val());
			if(search == "" || search == tips)
				return false;
			if(search != jQuery("#searchv").val()){
				// 重新排序table的内容
				jQuery("tr[sel=sel]").each(function(i){
					var current = jQuery(this).attr("vl");
					if(current.indexOf(search) != -1){
						// 获取当前tr的第一行
						var first = jQuery("tr[sel=sel]:eq(0)");
						// 防止查询第一个无节点时无法移动
						if(first.attr("vl") != current){
							// 把当前tr移动到第一行
							jQuery(this).insertBefore(first);
						}
					}
				});
				jQuery("#searchv").val(search);
			}
		});
	});
</script>


上一篇:2011MacbookPro win7安装


下一篇:windows的路由例子