热呛 2016-06-23 01:51 采纳率: 100%
浏览 1117
已采纳

这段代码改如何更改!!!!!!!!!!!!

图片说明
下面这这段代码如何以单价为基准 来排序 和更改建议呢

var rx = /^\d+(\.\d+)?$/, rxInt = /^\d+$/, tbRst = $('#tbRst'),nullCount=1;
    function validate(ipts) {
        var ipt = ipts.filter('.price');
        if (!rx.test(ipt.val())) { alert('单价为数字!'); ipt.select(); return false }
        ipt = ipts.filter('.num');
        if (!rxInt.test(ipt.val())) { alert('数量为数字!'); ipt.select(); return false }

        return true
    }
    function delRow(btn) {
        if (confirm('确认删除?!')) {
            $(btn).closest('tr').nextAll().each(function () { this.cells[0].innerHTML =parseInt( this.cells[0].innerHTML) - 1;});
            $(btn).closest('tr').remove();
            updateSortADV();
        }
    }
    function updateSortADV() {
        var arrTds = $('#tbRst').find('tr td:nth-child(5)'), arrMoney = arrTds.map(function () { return { index: this.parentNode.rowIndex, v: parseInt(this.innerHTML) } }).get();
        arrMoney.sort(function (a, b) { return a.v - b.v });
        var l = arrMoney.length, h = l - 1;
        for (var i = 0; i < l; i++) {
            arrTds.eq(arrMoney[i].index - 1).next().html(i + 1).next().html(i == 0 ? '价格较低' : i == h ? '价格较贵' : '').css('color', i == 0 ? 'red' : i == h ? 'red' : '')

        }
    }
    function addTR(btn) {
        var input = $(btn).closest('form').find(':text');
        if (validate(input)) {
            $('#tbRst').append('<tr align="center"><td>' + (tbRst.find('tr').length + 1) + '</td><td>' +( input.filter('.name').val()||'商品'+nullCount++) + '</td><td>' + (parseFloat(input.filter('.price').val()) / parseInt(input.filter('.num').val())).toFixed(2)
                + '</td><td>' + input.filter('.num').val() + '</td><td>'
                +input.filter('.price').val()  + '</td><td></td><td></td><td><input type="button" value="编辑" onclick="editUpdate(this)"/> <input type="button" value="删除" onclick="delRow(this)"/></td></tr>');
            btn.form.reset();
            updateSortADV();
        }
    }
    function editUpdate(btn) {
        var tds = $(btn).closest('tr').find('td'), edit = btn.value == '编辑';
        if (!edit) {
            if (!validate(tds.find('input'))) return;

            tds.eq(2).html((parseFloat(tds.eq(4).find('input').val()) / parseFloat(tds.eq(3).find('input').val())).toFixed(2));
        }

        tds.eq(1).html(edit ? '<input type="text" class="name" value="' + tds.eq(1).text() + '"/>' : tds.eq(1).find('input').val())
        tds.eq(4).html(edit ? '<input type="text" class="price" value="' + tds.eq(4).text() + '"/>' : tds.eq(4).find('input').val())
        tds.eq(3).html(edit ? '<input type="text" class="num" value="' + tds.eq(3).text() + '"/>' : tds.eq(3).find('input').val())
        btn.value = edit ? '更新' : '编辑';
        updateSortADV();
    } 
  • 写回答

2条回答 默认 最新

  • Go 旅城通票 2016-06-23 01:59
    关注
         function updateSortADV() {//tr td:nth-child(5)==>tr td:nth-child(3)就行了
            var arrTds = $('#tbRst').find('tr td:nth-child(3)'), arrMoney = arrTds.map(function () { return { index: this.parentNode.rowIndex, v: parseInt(this.innerHTML) } }).get();
            arrMoney.sort(function (a, b) { return a.v - b.v });
            var l = arrMoney.length, h = l - 1;
            for (var i = 0; i < l; i++) {
                arrTds.eq(arrMoney[i].index - 1).next().html(i + 1).next().html(i == 0 ? '价格较低' : i == h ? '价格较贵' : '').css('color', i == 0 ? 'red' : i == h ? 'red' : '')
    
            }
        }
    
    
        function editUpdate(btn) {
            var tds = $(btn).closest('tr').find('td'), edit = btn.value == '编辑';
            if (!edit) {
                if (!validate(tds.find('input'))) return;
    
                tds.eq(2).html((parseFloat(tds.eq(4).find('input').val()) / parseFloat(tds.eq(3).find('input').val())).toFixed(2));
            }
    
            tds.eq(1).html(edit ? '<input type="text" class="name" value="' + tds.eq(1).text() + '"/>' : tds.eq(1).find('input').val())
            tds.eq(4).html(edit ? '<input type="text" class="price" value="' + tds.eq(4).text() + '"/>' : tds.eq(4).find('input').val())
            tds.eq(3).html(edit ? '<input type="text" class="num" value="' + tds.eq(3).text() + '"/>' : tds.eq(3).find('input').val())
            btn.value = edit ? '更新' : '编辑';
            if(!edit)updateSortADV();///////////这里改下,更新的时候再排序
        } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?