这章本来准备写成jQuery的表单操作和表格操作的。
然而昨天吧jQuery的表单操作看完,发现全部在炒之前章节的剩饭,所以就没写出来。
那么今天就来看看表格吧。
因为平常做的都是公司的内部管理系统,所以说数据表格用到的还是比较多的。那么在这里写出来说不定还能用上。
关于jQuery的表格应用
- 隔行变色
$(function(){
$("tbody>tr:odd").addClass("样式1");//odd是选取奇数行
$("tbody>tr:even").addClass("样式2");//even是选取偶数行
}) - 单选框控制表格行高亮
$('tbody>tr').click(function(){
$(this).addClass('选中样式').siblings().removeClass('选中样式').end().find(':radio').attr('checked',true);
//请注意这里的end(),当用了siblings()后,后面所有的元素实际上操作的是this的统计元素,而用了end()后就回到了之前的$(this)元素
});
//注意到我们最开始初始化表格的时候,如果默认有单选框被选中,那么也需要进行处理。
$(table :radio:checked).parent().parent().addClass('selected');
//或者
$(table :radio:checked).parents("tr").addClass('selected');
//或者
$(table>tr:has(:checked)).addClass('selected'); - 复选框控制表格行高亮
//最简单的那种就不写了,看看下面这种
$('tbody>tr').click(function(){
//判断当前是否选中
var hasSelected=$(this).hasClass('selected');
$(this)[hasSelected?"removeClass":"addClass"]('selected')
.find(':checkbox').attr("checked",!hasSelected);
});
//本示例突出[hasSelected?"removeClass":"addClass"]这种玩法
//这实际上就是javascript的用法,因为一个对象里面的东西既可以用.这样的形式取出来,又可以用类似数组的形式取出来 - 表格展开关闭
//这种情况就是解决表格里面行数据有层级结构的
$(function(){
$('tr .parent').click(function(){
$(this).toggleClass("selected")
.siblings('.child_'+this.id).toggle();
})
}) - 表格内容筛选
//下面是表格的筛选操作
$(function(){
$("#filterName").keyup(function(){
$("table tbody tr").hide()
.filter(":contains('"+($(this).val())+"')").show();
});
});
//这种一般都是用不上,因为我们要的表格一般都是翻页的,然后去后台查筛选,然后传数据给前台。
好吧,这本书本章的其他节都是在炒剩饭,唯一新用到的函数是
var $div_li=$("li");
$div_li.click(function(){
var index=$div_li.index(this);//这种用法很有趣,其次就是index这个函数,是用于在选择出来的元素中,然后根据元素来获取元素的索引
})
还有就是js可以操作整个样式表的替换(这个我以前真的没玩过)
<link href="css/skin_0.css" rel="stylesheet" type="text/css" id="cssfile" />
$(function(){
$("#cssfile").attr("href","css/skin_1.css");
})
还介绍了jQuery的一款操作cookie的小插件,可以帮忙简化cookie操作
<script src="js/jquery.cookie.js" type="text/javascript"></script> $.cookie("MyCookieName","232",{path:'/',expires:10,domain:'myDomain.com',secure:true});//存cookie
//这里232为cookie的值,
//expires:cookie的期限,比如10就是存10天,如果不设置或者设置为null那么就当作session cookie处理,在浏览器关闭后就删除。-1就是删除cookie。
//path:'/'必须这么写,否则cookie的路径就会根据目录路径的不同自动设置,如http://www.xxx.com/user/,path会被设置为 '/user'
//domain:cookie的域名属性,默认为创建该Cookie的页面域名
//secure:如果设为true,那么此cookie的传输会要求一个安全协议,例如:HTTPS
var cookie_skin=$.cookie("MyCookieName");//取cookie
$.cookie(’MyCookieName’, null); //删除cookie,必须使用之前一样的path和domain才能正确删除cookie