首页 试题广场 > 试题详情
编程题

【C022066】如下图,请实现表格信息的排序功能,当点击表头的属性区域,将表格信息进行排序切换功能,即第一次点击为降序排序,再一次点击进行升序排序。

回复可见正确答案
下一题 上一题
Ke星伙伴们的回答/ 15个回答 添加答案
  • 地瓜先森 1楼

    实现思路:使用jQuery操作DOM对象实现


    1、等待DOM加载完毕

    $(document).ready(function);

    2、利用jQuery的选择器,选择第一行所有的列,并添加 click() 事件

    $("table tr:first td").click(function);

    3、click()代码体里面判断当前点击的是那一列,并判断是该升序还是降序

    4、再利用jQuery选择器将除去第一行之外的所有行(tr)选中,并存入一个变量中

    var list = $("table tr:gt(0)");

    5、然后通过冒泡排序的方法,将list中所有数值进行排序,并存到一个新的变量中

    var newList = $();
    for (var i = 0; list.Length;i++) {
      //取出来的对象是DOM对象,并不是jQuery对象,所以需要重新封装下
      var num = parseInt($(list[i]).find(td:eq([当前列])));
      newList[i]= // 冒泡排序
    }

    6、然后将除去第一行的所有行的html清空

    $("table tr:gt(0)").html("");

    7、再通过遍历排序后的集合重新输出DOM对象

    for (var i = 0; newList .Length;i++) {
      $("table tr:eq("+i+")").html(newList[i];
    }

    8、以上步骤即可实现排序的效果

    发表时间:2016-12-07 01:04:40 评论 1

  • 沙漏的终结er 2楼

    ……
    发表时间:2016-08-14 20:53:07 评论 0

  • kuserwh4q 3楼

    111
    发表时间:2016-08-19 22:05:08 评论 0

  • simplexx 4楼

    hhh

    发表时间:2016-08-20 17:32:05 评论 0

  • fgahgf 5楼

    jxjd
    发表时间:2016-08-21 15:54:03 评论 0

  • Lnthy 6楼

    发表时间:2016-09-08 20:02:55 评论 0

  • chenchun 7楼

    1

    发表时间:2016-09-08 23:25:45 评论 0

  • 泪干了 8楼

    看看
    发表时间:2016-12-27 17:10:55 评论 0

  • holidayfhd 9楼

    看看
    发表时间:2017-04-20 03:37:23 评论 0

  • 蔷薇很香 10楼

    不知道
    发表时间:2017-06-20 23:05:48 评论 0

  • chsheng 11楼

    ng?

    发表时间:2017-08-02 08:32:20 评论 0

  • 无量海帮主 12楼

    ?

    发表时间:2017-08-23 14:11:33 评论 0

  • 打不死的小强6988 13楼

    设两个参数a b
    发表时间:2018-01-09 07:52:57 评论 0

  • jeffern 14楼

    raxa

    发表时间:2018-04-13 10:03:57 评论 0

  • Sa lettre 15楼

    let content = document.getElementById('content');

    let name = document.getElementById('name');

    let HP = document.getElementById('HP');

    let MP = document.getElementById('MP');

    let SP = document.getElementById('SP');

    let dataList = [{

    name: '德鲁伊',

    HP: 17,

    MP: 24,

    SP: 13

    }, {

    name: '月之骑士',

    HP: 15,

    MP: 22,

    SP: 16

    }, {

    name: '众神之王',

    HP: 19,

    MP: 15,

    SP: 20

    }, {

    name: '浏览剑客',

    HP: 23,

    MP: 15,

    SP: 14

    }];


    HP.onclick = function(e) {

    let temp = parseInt(this.dataset.flag);

    sortFun('HP', temp);

    this.dataset.flag = Number(!temp);

    draw(dataList);

    }

    MP.onclick = function(e) {

    let temp = parseInt(this.dataset.flag);

    sortFun('MP', temp);

    this.dataset.flag = Number(!temp);

    draw(dataList);

    }

    SP.onclick = function(e) {

    let temp = parseInt(this.dataset.flag);

    sortFun('SP', temp);

    this.dataset.flag = Number(!temp);

    draw(dataList);

    }

    /**

    * 排序方法

    * @param  {[string]} str  [根据哪个字段排序]

    * @param  {[type]} flag [升序还是降序]

    * @return {[type]}      [des cription]

    */

    function sortFun(str, flag) {

    dataList.sort((a, b) => {

    return flag ? a[str] - b[str] : b[str] - a[str];

    })

    }

    function draw(data) {

    let str = '';

    data.map(item => {

    str += `<dl><dt>${item.name}</dt><dt>${item.HP}</dt><dt>${item.MP}</dt><dt>${item.SP}</dt></dl>`;

    })

    str += '</div>';


    content.innerHTML = str;

    }

    function init() {

    draw(dataList);

    }

    window.onload = function() {

    init();

    }


    发表时间:2018-07-17 19:35:46 评论 0

贡献榜
关闭
关闭
QQ
交流群
邀请
好友
App
下载
意见
反馈
返回
顶部