热呛 2016-03-22 06:21 采纳率: 100%
浏览 1328
已采纳

看看我写额这段jquery有没有问题

var sFood1 = $('#food1'), sFood2 = $('#food2'), sAge = $('#age'), sSex = $('#sex')
         //去掉第一个名列和最后一个操作列
        , tdSums = $('#trSum td:gt(0)').not(':last')
        , tdAges = $('#trAge td:gt(0)').not(':last')
        , tdDiffs = $('#trDiff td:gt(0)').not(':last')
        //////
        , tbFood = $('#tbFood')
    //初始化食品一级分类及事件
    for (attr in food) sFood1.append('<option value="' + attr + '">' + attr + '</option>');
    sFood1.change(function () {
        var arr = food[this.value];
        sFood2.html('');
        for (attr in arr) sFood2.append('<option value="' + attr + '">' + attr + '</option>');
    }).trigger('change');//触发一级分类加载2级分类
    //初始化年龄段
    for (attr in age) sAge.append('<option value="' + attr + '">' + attr + '</option>');
    sAge.add('#sex').change(function () {///////
        var arr = sAge.val() == '请选择' ? age['请选择'] : age[sAge.val()][sSex.val()];

        tdAges.each(function (index) { this.innerHTML = arr[index]; });

        updateSumDiff();
    });//触发onchange更新trAge中的td数值

    function updateSumDiff() {//更新合计和差距
        var sum = [];//每营养小计
        tbFood.find('tr').each(function () {
            $('td:gt(0)', this).not(':last').each(function (index) {
                sum[index] = ( parseInt(this.innerHTML) || 0) + parseFloat(sum[index] || 0);
            });
        });
        //更新合计和差距
        tdAges.each(function (index) {
            tdSums.eq(index).html(( parseInt(this.innerHTML) || 0) + parseFloat(sum[index] || 0));
            tdDiffs.eq(index).html(( parseInt(this.innerHTML) || 0) - parseFloat(sum[index] || 0));

        });
        //当差距值为负值的时候为红色
        tdDiffs.find('tr').each(function () {
            $('td:gt(0)', this).not(':last').each(function (index) {
                if(tdDiffs.val()<0 ){
            $(this).css("color","red");
        } 
        else{
            $(this).css("color","black");
            }


            });
        });                                             

    }
    function addFood() {
        var arr = food[sFood1.val()][sFood2.val()];
        var s = '<tr><td>' + sFood2.val() + '</td>';
        for (var i = 0; i < arr.length; i++) s += '<td>' + arr[i] + '</td>';
        s += '<td><input type="button" value="删除" onclick="removeFood(this)"/></td></tr>';
        tbFood.append(s);
        updateSumDiff();
    }
    function removeFood(o) { $(o).closest('tr').remove(); updateSumDiff(); } 

上面是js 我想问的是 当下面图片值为负值的时候变成红色

图片说明

下面是 我为了让他变成我需要的样式的jquery,但是他没有效果

 //当差距值为负值的时候为红色
        tdDiffs.find('tr').each(function () {
            $('td:gt(0)', this).not(':last').each(function (index) {
                if(tdDiffs.val()<0 ){
            $(this).css("color","red");
        } 
        else{
            $(this).css("color","black");
            }


            });

你们帮我看看 那的问题了 是写错了 吗

  • 写回答

2条回答 默认 最新

  • Go 旅城通票 2016-03-23 07:53
    关注

    变量tdAges更新差距td的单元格内容时做就好了,干嘛又要遍历一次。。

    
        tdAges.each(function (index) {
            var v = ((parseInt(this.innerHTML) || 0) + parseFloat(sum[index] || 0)).toFixed(2);
            tdSums.eq(index).html(v);
            v = (parseInt(this.innerHTML) || 0) - parseFloat(sum[index] || 0);
            tdDiffs.eq(index).html(v.toFixed(2)).css('color', v < 0 ? 'red' : 'black');
        });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?