美文网首页
jq表格排序 --- 中英文,数字等

jq表格排序 --- 中英文,数字等

作者: 紫灬楓 | 来源:发表于2018-02-09 17:03 被阅读29次

展示图:例如:中文的高中低排序,用的是绑定数字1 ,2 ,3来代替,HTML中隐藏数字,但可以获取到数字和高中低的字符串,如此值对比数字即可。

image

HTML部分代码:

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;

}

相关文章

  • jq表格排序 --- 中英文,数字等

    展示图:例如:中文的高中低排序,用的是绑定数字1 ,2 ,3来代替,HTML中隐藏数字,但可以获取到数字和高中低的...

  • JS排序

    1、数字排序 2、字符串排序 3、中文排序 4、中英文数字字符串排序

  • JavaScript点击表格的表头,实现表格排序

    现在很多vue/react等js框架配套的UI框架,表格自带点击表头排序的动能。后来小想了js/jq 手写的话,逻...

  • 表格多列排序

    效果演示 实现的是点击表格的标题,对应的列按照大小排序,如果是数字,按照大小排序,如果是非数字, 通过 local...

  • Python高阶函数sorted排序

    sorted用法 sorted是Python提供的功能强大的排序函数。满足字符,数字等排序要求。 对数字进行排序:...

  • 使用tablesorter排序时 Uncaught TypeEr

    以倒序排序第四列代码: 错误原因: 排序的列不是数字,或可排序的对象 解决方案: 不要对非数字等不可排序的列排序。

  • 四重常见的排序方法

    冒泡排序 快速排序 插入排序 表格排序

  • jq 封装table 组件

    在jq项目里面我们也会用到一下表格,这个时候就是用到表格先提条件就是已经用了,jq的插件了在components建...

  • Antd@4.0 表格多列联动排序

    表格有一个常用的功能就是排序功能,排序功能依据谁排分为两种: 前端排序(简单的序号等) 后端排序(复杂点的排序,一...

  • 大数据Clouder认证:使用Quick BI 制作企业数据分析

    数据可视化与图形报表介绍 报表:用表格、图表等格式来显示数据。常见的报表格式有数字表格、图表等、报表是商业智能(B...

网友评论

      本文标题:jq表格排序 --- 中英文,数字等

      本文链接:https://www.haomeiwen.com/subject/ivqqtftx.html