html 标题自动排序,HTML排序 - 不同表格上的标题

如果你添加一些班列,使柱细胞和相关的头具有相同的类名,这不是太难以利用这些其他现有的JavaScript的解决方案。

我修改这样的HTML:

NameSalary
Fred$12000.00
Kevin$191200.00

请注意,我游戏的标题名称和所有的细胞在该列类name-col,和我做了薪酬头和细胞,与同一类salary-col。

然后我用jQuery来点击监听器添加到name-col头,其然后引发了name-col细胞排序功能:

$('th.name-col').click(function() {

$('td.name-col').sortElements(function(a, b){

return $(a).text() > $(b).text() ? 1 : -1;

}, function(){ return this.parentNode; });

});

$('th.salary-col').click(function() {

$('td.salary-col').sortElements(function(a, b){

return $(a).text() > $(b).text() ? 1 : -1;

}, function(){ return this.parentNode; });

});

在这个例子中,sortElements是在所提供的功能上面链接的简单JQuery排序函数。我不是它的作者。

你会注意到这个脚本只会排序一次,但是,由于比较方向(>)是硬编码的。一个快速正脏来实现逻辑来扭转这种方式是这样的:

var nameAsc = false;

var salaryAsc = false;

$('th.name-col').click(function() {

$('td.name-col').sortElements(function(a, b){

if (nameAsc) {

nameAsc = false;

return $(a).text() > $(b).text() ? 1 : -1;

} else {

nameAsc = true;

return $(a).text() < $(b).text() ? 1 : -1;

}

}, function(){ return this.parentNode; });

});

$('th.salary-col').click(function() {

$('td.salary-col').sortElements(function(a, b){

if(salaryAsc) {

salaryAsc = false;

return $(a).text() > $(b).text() ? 1 : -1;

} else {

salaryAsc = true;

return $(a).text() < $(b).text() ? 1 : -1;

}

}, function(){ return this.parentNode; });

});

这里nameAsc和salaryAsc布尔变量是让您反转排列顺序的只是一个hackish的方式。如果升序,则在比较器功能中翻转布尔值和>的方向。这可能是一种更有效的方法,但我只是想要一个快速而肮脏的例子。

您的双桌模型会遇到很多问题,特别是在调整列的大小时。如果数据表中单元格中的数据较长,则数据列将不再与您的标题列对齐。我强烈建议你只使用单个表格来表示标题为和的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值