展示图:例如:中文的高中低排序,用的是绑定数字1 ,2 ,3来代替,HTML中隐藏数字,但可以获取到数字和高中低的字符串,如此值对比数字即可。
imageHTML部分代码:
image
jQuery:
//表格排序代码
var tbHeadTh =$('.wl-projects-table__head').find('tr th'); //获取thead下的tr下的th
var tbBodyTr =$('.wl-projects-table__body1').find('tr'); //获取tbody下的tr
var sortIndex = -1;
tbHeadTh.each(function () {//遍历thead的tr下的th
var thisIndex = tbHeadTh.index($(this)); //获取th所在的列号
//给表态th增加鼠标位于上方时发生的事件
$(this).off('click'); //绑事件之前,解除之前的绑定事件(表头循环绑定事件且非动态创建)
$(this).click(function () {//给当前表头th增加点击事件
var dataType =$(this).attr("data-type");//点击时获取当前th的type属性值,这个dataType需要自己填写。
checkColumnValue(thisIndex, dataType);
});
});
//排序函数
function checkColumnValue(thisIndex,dataType) {
var trsValue =new Array();
tbBodyTr.each(function () {
var tds =$(this).find('td'); //获取行号为index列的某一行的单元格内容与该单元格所在行的行内容添加到数组 trsValue中
trsValue.push(dataType +".separator" +$(tds[thisIndex]).text() +".separator" +$(this).html());
});
var len = trsValue.length;
if (thisIndex == sortIndex) {
//如果已经排序了则直接倒序
trsValue.reverse();
}else {
for(var i =0; i < len; i++){
for(var j = i +1; j < len; j++){
var valueF = trsValue[i].split(".separator")[1];
var valueS = trsValue[j].split(".separator")[1];
if (dataType =="number") {//价格 市值 预估市值
//将字符串转为数字比较Number
var valueFs = Number(valueF.split(",").join("").substring(1, valueF.split(",").join("").length -1));
var valueSs = Number(valueS.split(",").join("").substring(1, valueS.split(",").join("").length -1));
if (valueFs < valueSs) {
var temp = trsValue[j];
trsValue[j] = trsValue[i];
trsValue[i] = temp;
}
}else if(dataType =="hotRisk"){
var valueFs = valueF.substring(1);
var valueSs = valueS.substring(1);
if (valueFs > valueSs) {
var temp = trsValue[j];
trsValue[j] = trsValue[i];
trsValue[i] = temp;
}
}else if(dataType =='letters'){
if(valueF.localeCompare(valueS) >0){
var temp = trsValue[j];
trsValue[j] = trsValue[i];
trsValue[i] = temp;
}
}else if(dataType =='potential'){
var valueFs = Number(valueF.substring(0,valueF.length -1));
var valueSs = Number(valueS.substring(0,valueS.length -1));
if (valueFs < valueSs) {
var temp = trsValue[j];
trsValue[j] = trsValue[i];
trsValue[i] = temp;
}
}else if(dataType =='percent') {
var valueFs = Number(valueF.split(",").join("").substring(0, valueF.split(",").join("").length -1));
var valueSs = Number(valueS.split(",").join("").substring(0, valueS.split(",").join("").length -1));
if (valueFs > valueSs) {
var temp = trsValue[j];
trsValue[j] = trsValue[i];
trsValue[i] = temp;
}
}
}
}
}
for (var i =0; i < len; i++) {
$(".wl-projects-table .wl-projects-table__body1 tr:eq(" + i +")").html(trsValue[i].split(".separator")[2]);
}
sortIndex = thisIndex;
}
网友评论