js-帮我看看 那不对 !!!!!

问题描述

帮我看看 那不对 !!!!!

年龄段 后面跟男或者女 二级联动

js

之前不需要 男 女 是一个大神帮我写的代码 代码里我注释 是我后加进去的

但是没加对 求看看

还有就是  结果 精确的俩位的话 在哪加toFixed 我加上不是 0.00 就是  00.0
 <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<script>
    var food = {
        谷物: {
            //大米数组中依次存储 热量,蛋白质,脂肪,碳水化合物,胆固醇。。。其他食品同理

            //生成数据一定要生成和你表头列数一样的数字数组
            大米: [1, 2, 3, 4, 5], 小麦: [2, 3, 4, 5, 6], 玉米: [3, 4, 5, 6, 7]/*..更加多谷物*/
        },
        蔬菜: {
            大白菜: [2, 3, 4, 5, 6], 菠菜: [3, 4, 5, 6, 7]/*...更多蔬菜*/
        }
        //....更加多食物种类
    };
    //岁数数组中的营养和上面列出的一致
    var age = {
        请选择:{
            请选择:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
            },
        '1-7岁': {
            "女":[1, 2, 3, 4, 5],
            "男":[1, 2, 3, 4, 5]
            } ,
};
</script>
食品:<select id="food1"></select><select id="food2"></select><input type="button" value="添加" onclick="addFood()" /><br />
年龄段:<select id="age"></select> <select id="sex"></select><br />
<table border="1">
    <tr><td>食物名称</td><td>热量</td><td>蛋白质</td><td>脂肪</td><td>碳水化合物</td><td>胆固醇</td><td>操作</td></tr>
    <tr id="trSum"><td>合计</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
    <tr id="trAge"><td>人体正常值</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
    <tr id="trDiff"><td>差距值</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
    <tbody id="tbFood"></tbody>
</table>
<script>
    var sFood1 = $('#food1'), sFood2 = $('#food2'), sAge = $('#age'),sage1 = $('#sex')
         //去掉第一个名列和最后一个操作列
        , tdSums =  $('#trSum td:gt(0)')
        , tdAges = $('#trAge td:gt(0)')
        , tdDiffs = $('#trDiff td:gt(0)')
        //////
        , 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.change(function () {
        var arr = age[this.value];
        //sAge1.html('');
        //for (attr in arr) sAge1.append('<option value="' + attr + '">' + attr + '</option>');
        tdAges.each(function (index) { this.innerHTML = arr[index]; });

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

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

解决方案

你改我代码都改错了,要去掉最后一个td,自己看下数据结构,你的变量sex名称我也改成sSex了,

 <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<script>
    var food = {
        谷物: {
            //大米数组中依次存储 热量,蛋白质,脂肪,碳水化合物,胆固醇。。。其他食品同理

            //生成数据一定要生成和你表头列数一样的数字数组
            大米: [1, 2, 3, 4, 5], 小麦: [2, 3, 4, 5, 6], 玉米: [3, 4, 5, 6, 7]/*..更加多谷物*/
        },
        蔬菜: {
            大白菜: [2, 3, 4, 5, 6], 菠菜: [3, 4, 5, 6, 7]/*...更多蔬菜*/
        }
        //....更加多食物种类
    };
    //岁数数组中的营养和上面列出的一致
    var age = {
        请选择:  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        '1-7岁': {
            "女": [1, 2, 3, 4, 5],
            "男": [3, 4, 5, 6, 7]
        },
    };
</script>
食品:<select id="food1"></select><select id="food2"></select><input type="button" value="添加" onclick="addFood()" /><br />
年龄段:<select id="age"></select> <select id="sex"><option value="男">男</option><option value="女">女</option></select><br />
<table border="1">
    <tr><td>食物名称</td><td>热量</td><td>蛋白质</td><td>脂肪</td><td>碳水化合物</td><td>胆固醇</td><td>操作</td></tr>
    <tr id="trSum"><td>合计</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
    <tr id="trAge"><td>人体正常值</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
    <tr id="trDiff"><td>差距值</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
    <tbody id="tbFood"></tbody>
</table>
<script>
    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()];
        //sAge1.html('');
        //for (attr in arr) sAge1.append('<option value="' + attr + '">' + attr + '</option>');
        tdAges.each(function (index) { this.innerHTML = arr[index]; });

        updateSumDiff();
    }).eq(0).trigger('change');//触发onchange更新trAge中的td数值

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

解决方案二:

仔细看了你的提问内容,没有找到关于问题现象的描述

你这样让别人很难帮助你啊

提问者应该在如何节省回答者时间上下功夫。否则问题会被无视的。

解决方案三:

改成这样就可以了!

  sAge.change(function () {
        var arr = age[this.value];
        sage1.html('');
        for (attr in arr) sage1.append('<option value="' + attr + '">' + attr + '</option>');
        tdAges.each(function (index) { this.innerHTML = arr[index]; });

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

解决方案四:

并没有看到要问什么,,

解决方案五:


有的时候回出现这种情况 所以想精确一下 但是 我加toFixed 不是 00.00 就是 0.00.0 这样

我想让他初始页面是这样呢

时间: 2024-09-22 07:13:23

js-帮我看看 那不对 !!!!!的相关文章

深入理解Js的This绑定 ( 无需死记硬背,尾部有总结和面试题解析 )

js 的 this 绑定问题,让多数新手懵逼,部分老手觉得恶心,这是因为this的绑定 '难以捉摸',出错的时候还往往不知道为什么,相当反逻辑. 让我们考虑下面代码: var people = {      name : "海洋饼干",      getName : function(){          console.log(this.name);      }  };  window.onload = function(){      xxx.onclick =  people

分享平时整理收集的11款jQuery插件,很好很强大

☆ ☆ ☆ ☆ ☆ jQuery表单验证插件 jQuery表单验证插件是一款优秀的jquery插件,它能对客户端表单进行验证,并且提供了许多可以定制的属性和方法,良好的扩展性,使用量也是最多的一种表单验证方法.经过了全球范围内不同项目的验证,并得到了许多Web开发者的好评. jQuery-File-Upload插件 jQuery- File-Upload插件支持多文件上传,拖拽文件上传,进度条,预览图片.视频和音频. 支持跨域上传,分块上传和可恢复的文件上传和客户端图像调整.可以在支持标准HTM

javascript 面向对象整理

整理一下js面向对象中的封装和继承. 1.封装 js中封装有很多种实现方式,这里列出常用的几种. 1.1 原始模式生成对象 直接将我们的成员写入对象中,用函数返回. 缺点:很难看出是一个模式出来的实例. 代码: function Stu(name, score) {             return {                 name: name,                 score: score             }         }         var st

网页发送udp数据

问题描述 我想实现网页上点击某个按钮就用发送udp数据给服务器,不知道js可以实现吗,如果不行有没有什么好的方法来实现,谢谢了大家 解决方案 解决方案二:你可以编写插件实现解决方案三:记得做毕业设计的时候找到了一个Flash框架叫aflax,里边封装了一些TCP操作功能,你可以看下是否能用解决方案四:JS不好实现吧解决方案五:tonet_lover:能否详细一点,之前没有做过类似的东西,插件用什么来写,用VC写activex插件可以用吗??我直接调用的winsock插件,不可以的,挺奇怪的,代码

crollupctrl-控制CRollupCtrl类创建的标题栏

问题描述 控制CRollupCtrl类创建的标题栏 想通过OnSize变化来动态改变CRollupCtrl的标题:代码如下,麻烦大家帮我看看怎么不对了. CString str1 = "ZERO DATA(mv)",str2 = "10 KHz", str3 = "30 KHz", str4 = "50 KHz", str5 = "70 KHz", str6 = "90 KHz", st

《JavaScript框架设计》——第 2 章  模块加载系统 2.1AMD规范

第 2 章 模块加载系统 任何语言一到大规模应用阶段,必然要经历拆分模块的过程,以有利于维护与团队协作.与Java走得最近的dojo率先引入了加载器,早期的加载器都是同步的,使用document.write与同步Ajax请求实现.后来dojo开始以JSONP的方法设计它的每个模块的结构,以script节点为主体加载它的模块,这个就是目前主流的加载器方式.不得不提的是,dojo的加载器与AMD规范的发明者都是James Burke,dojo加载器独立出来就是著名的require加载器. 2.1 A

配置-关于spring mvc静态资源 加载的问题

问题描述 关于spring mvc静态资源 加载的问题 浏览器报了这样的错误 然后小弟的项目里面是这样配置滴: 解决方案 第一行错误就显示jquery没找到,$肯定也就不好使了.可以在src里加上"${pageContext.request.contextPath}/"配完整路径 解决方案二: 不能用 /js 开头,应该这样写:/web工程名/js .... 这是个非常基础的问题,建议看下 html 相关知识 解决方案三: 1可能是你用的SpringMVC框架,拦截了静态资源.你检查下

来java树结构高手-求助ssh树结构代码来个大神

问题描述 求助ssh树结构代码来个大神 本人初学 求个树结构的代码 ssh平台 结合js做的 我写了jso js 但action老是写不对 dao service全弄好了

text-align:justify实现两端对齐一例

text-align:justify只能对多行中的非最后一行进行两端对齐.对于单行自己没办法,IE有text-justify 可以解决问题,对了非IE的我的方式比较垃圾,因为只在特殊场合下才会用.  代码如下 复制代码 .justify{ height:1.1em; overflow:hidden; text-align:justify; text-justify :distribute-all-lines; } div.cn:after { content: "________________