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

问题描述

看看我写额这段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");
            }

            });

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

解决方案

变量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');
    });

解决方案二:

这弄得也太复杂了。
建议对要设置颜色的td格子,单独加上一个空的class="colorcss"来区分,jquery使用$(".colorcss")就可以处理了,不用这么麻烦,找tr,td都乱

时间: 2025-01-19 13:49:35

javascript-看看我写额这段jquery有没有问题的相关文章

javascript中$(function() {});写与不写有哪些区别_javascript技巧

javascript中$(function() {....}) 是 jQuery 中的经典用法,等同于 $(document).ready(function() {....}),即在页面加载完成后才执行某个函数,如果函数中要操作 DOM,在页面加载完成后再执行会更安全,所以在使用 jQuery 时这样的写法很常见. $(document).ready() 里的代码是在页面内容都加载完才执行的,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,此时如果你标

为什么这段jquery图片放大代码放在php中就不会出现放大的图片效果了

问题描述 为什么这段jquery图片放大代码放在php中就不会出现放大的图片效果了 #ShowPictureBox { width:300px; height:300px;overflow:hidden; }$(document).ready(function(){ $("#ShowPictureBox").JNMagnifier({ renderTo:"#ShowBigPictureBox" });}); <!--这里显示放大效果--> 解决方案 jq

javascript中直接写php代码的方法

这篇文章介绍了javascript中直接写php代码的方法,有需要的朋友可以参考一下    一.在javascript中嵌入php代码 javascript若是通过js文件包含进来的,那么js文件中也可以直接写php代码,只不过包含js文件是扩展名要改成php,如: 复制代码 代码如下: <script herf="js/demo.js.php"></script> 二.javascript函数参数的默认值 c语言中可以通过这样来设置默认参数: 复制代码 代码如

char-大侠快看我写的一小段代码

问题描述 大侠快看我写的一小段代码 #include #include //搜索x44x65x73x63x72x69x70x74x69x6Fx6E 偏移地址 DWORD ReadFile(char* str) { char data[11] = {0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6F, 0x6E}; HANDLE pfile = CreateFile(str,GENERIC_READ,0,NULL,OPEN_EXIS

我写的这段代码是不是有问题,都没效果。就是鼠标移入移出让它高亮。

问题描述 我写的这段代码是不是有问题,都没效果.就是鼠标移入移出让它高亮. 代码如图所示,我想实现鼠标移到li的时候把它的样式改为active,其实就是高亮.然后移除li的时候把li去除.悬赏的币不多,请见谅!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 解决方案 解决方案二: 上面Js中多了个分号,我把分号去掉,结果也一样,样式用的是boostrap 解决方案三: http://m.blog.csdn.net/article/details?id=50

j uery代码-请教一段jQuery代码,请问是表示什么意思?

问题描述 请教一段jQuery代码,请问是表示什么意思? 大家好,请问代码里面的"t = c(e) ""u(v m g y t[r + 0] b 3614090360) ",是表示什么意思呢?希望能给解答,谢谢. e.extend( { Token: function(e) { var t = Array(); e += cb; var r i s o d v m g y b = 7 w = 12 E = 17 S = 22 x = 5 T = 9 N = 14 C

这是我写的一段c语言程序,做了很久只能做到这样

问题描述 这是我写的一段c语言程序,做了很久只能做到这样 #include #include #include #define N 8 main() { int i,n=0,c=0; int a[N]; srand(time(NULL)); for(i=0;i<N;i++) { a[i]=rand()%2; printf("%8d%8dn",i,a[i]); } printf("n"); while(c<8) { for(i=1;i<N;i++)

spring jdbc-用spring mvc模式写了一段代码,但一直都会提示404,不知道错误在哪,求指点。

问题描述 用spring mvc模式写了一段代码,但一直都会提示404,不知道错误在哪,求指点. 用springmvc 和spring jdbc谢了一段代码,但一直提示404错误,不知道该如何解决,已经困扰很多天了.(Dao中只写了增加,没有写service,只是想试一下能不能连接到数据库,customer只有id和name) web.xml文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <web-ap

数据库-我写了一段mysql查询,但是两段order by的顺序却不一样,求助

问题描述 我写了一段mysql查询,但是两段order by的顺序却不一样,求助 第一段是不分页的 select T.ID ,TName.Name ,(select Count(UsingT.TID) from UsingT where UsingT.TID=T.ID) as LinkCount from T inner join TName on T.TNameID = TName.ID and TName.Name like @tname order by Name asc; <=重点在这里