qq_42218258
你吃西瓜皮
2019-02-26 13:58
采纳率: 100%
浏览 990

forEach遍历json数据填充表格,删除指定行。

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>

        <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    </head>

    <body>
        <table id='tab' border="1">
            <thead>
                <tr style="background-color:#CCCCCC;">
                    <th>名称</th>
                    <th>数量</th>
                    <th>价格</th>
                </tr>
            </thead>
            <tbody>

            </tbody>

        </table>
    </body>
    <script>
        //水果数量
        var fruit = {
            '苹果': 0,
            '香蕉': 2,
            '水梨': 0,
            '葡萄': 8,
            '火龙果': 14,
        }
        var tianmao = [{
                id: 1,
                name: '橘子',
                price: 8
            },
            {
                id: 2,
                name: '香蕉',
                price: 8
            },
            {
                id: 3,
                name: '橘子',
                price: 8
            },
            {
                id: 4,
                name: '水梨',
                price: 8
            },
            {
                id: 5,
                name: '火龙果',
                price: 8
            },
            {
                id: 6,
                name: '葡萄',
                price: 8
            }
        ]

        tianmao.forEach(function(obj) {
            /*for(var i in tianmao) {
                for(var k in tianmao[i]) {
                    if(tianmao[i][k] == "undefined") {
                        //delete tianmao[i];
                        tianmao.splice(i, 1);
                        i = i - 1;
                        break;
                    }
                }
            }*/

            var str = '<tr><td>' + obj.name + '</td><td>' + fruit[obj.name] + '</td><td>' + obj.price + '</td></tr>'
            $("#tab tbody").append(str);
        });

        //方法一
        /*$('#tab').find('tr').each(function() {
            var num = $(this).find("td").eq(1).html();
            if(num == 0 || num == 'undefined') {
                $(this).find("td").parent().remove(); //删除td所在行
            }
        });*/
    </script>

</html>

通过遍历数据得到table如图,现在想删除掉数量未定义和为0的行tr,但实际table是带有分页得,方法一遍历不到所有得行(只能一页)行不通,怎么在append前,处理json得到想要得结果。谢谢十分~

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qq_42218258
    你吃西瓜皮 2019-02-26 16:07
    已采纳
    tianmao.forEach(function(obj) {
                var str = '<tr><td>' + obj.name + '</td><td>' + fruit[obj.name] + '</td><td>' + obj.price + '</td></tr>'
                if(fruit[obj.name] !=0 && fruit[obj.name] !=undefined){
                    $("#tab tbody").append(str);
        }
            });
    
    点赞 评论
  • qq_37129624
    ghq-yes 2019-02-26 15:29

    你在var str前面一行先加个判断不就行了吗

    点赞 评论
  • weixin_41049777
    倔强的小石头-jofun 2019-02-26 22:49
    tianmao = tianmao.filter(item => item.price)
    

    本人最近建立了开源项目usuallyjs,非常欢迎楼主一起交流,github地址:https://github.com/JofunLiang/usuallyjs,别忘了start哦.

    点赞 评论

相关推荐