$是一个普通字符,也是javascript中的合法标识符,和a,b,c,d,e没什么区别...学过编程,就知道变量需要有变量名,在声明变量的时候要定义合法的标识符。许多javascript库,比如prototyp
$(function(){
//将每个td的内容存储在点击的列中;
varatdcont[];
//单击列的索引值。
varthi0
//将tr重新排序。
varsettrindex函数(tdindex){
for(i0;iatdcont.lengthi){
vartrcontatdcont[i];
$(tbodytr)。each(function(){
varthist:eq(tdindex))。text();
if(thistexttrcont){
$(tbody)。追加($(this));
}
});
}
}
//比较函数的参数函数
varcompare_down函数(a,b){
返回a-b;
}
varcompare_up函数(a,b){
返回b-a;
}
//比较函数
varfsort函数(比较){
(对比);
}
//取出td的值存放在数组中,取出前两个td值;
varfsettdcont函数(thindex){
$(tbodytr)。each(function(){
vartdcont$(this)。儿童(td:eq(thindex))。text();
atdcont.push(tdcont);
});
}
//单击时要执行的函数
varclickfun函数(thindex){
atdcont[];
//获取被点击的当前列的索引值。
varnthcountthindex
//调用sortth函数获取要比较的数据。
fsettdcont(nthcount);
}
//点击事件绑定函数。
$(第)。切换(功能在(){
thi$(这个)。index();
clickfun(thi);
//调用比较函数,降序。
fsort(compare_up);
//重新排列行
settrindex(thi);
},function(){
clickfun(thi);
//按升序调用比较函数
fsort(compare_down);
//重新排列行
settrindex(thi);
})
})
主要观点:
因为js有一个sort方法对数组进行排序,所以我们会通过这个方法来思考数组。
1.在标记表格标题时,取出您点击的列。列的索引值。因为那要排序的列。所以我需要知道是哪一栏。
2.对于表的数据部分,即tbody部分,获取被单击的列的值,并将这些值存储到一个数组中。
3.按排序方法对存储数据的数组进行排序。(这里写了两种,升序或者降序,因为点击的时候要切换排序。第一次下降,第二次上升,第三次下降,第四次上升,依次)
4.遍历排序后的数组的值,并在遍历过程中与每一行tr的click列中的td中的数据进行比较。如果相等,将它们插入到tbody的末尾。(第一个会在第一行。)