for 循环在 jQuery 中自动迭代两次

for loop iterate two time in jquery automatically

提问人:Nurin Azmir 提问时间:3/15/2023 更新时间:3/15/2023 访问量:41

问:

我正在尝试通过调用api来获取数据并将数据放入表中。我在对象类型中发现了三个长度的数据。然后,当我想在桌子上显示它时,它显示六行,但我想要三行。当我调试代码时,我注意到 for 循环的索引迭代 0-2(这完全是我想要的),但这个 for 循环第二次调用 auto 并启动索引 0-2(这是我的问题),这就是为什么它可能在我的列中显示 3+3 = 6 行。我不确定确切的问题是什么。如何解决此问题?

这是我的脚本: $(文档).ready(函数() {

        $.post('http://localhost/..., function (data) {
            var leaveList = data.data;
            var keys = Object.keys(leaveList);

            var len = keys.length;
            //alert(len);

            for (var i = 0; i < len; i++) {
               
                if (leaveList[i]["absenceTypeID"] == 'SL') {
                    var row = '<tr><td> ' + leaveList[i]["absenceTypeID"] + ' </td><td> Sick Leave </td> <td> ' + leaveList[i]["absLimiteDimension"] + ' </td> <td>' + leaveList[i]["calculated"] + '</td> </tr>'
                } else if (leaveList[i]["absenceTypeID"] == 'CL') {
                    var row = '<tr><td> ' + leaveList[i]["absenceTypeID"] + ' </td><td> Casual Leave </td> <td> ' + leaveList[i]["absLimiteDimension"] + ' </td> <td>' + leaveList[i]["calculated"] + '</td> </tr>'
                } else if (leaveList[i]["absenceTypeID"] == 'EL') {
                    var row = '<tr><td> ' + leaveList[i]["absenceTypeID"] + ' </td><td> Earned Leave </td> <td> ' + leaveList[i]["absLimiteDimension"] + ' </td> <td>' + leaveList[i]["calculated"] + '</td> </tr>'
                } else if (leaveList[i]["absenceTypeID"] == 'ML') {
                    var row = '<tr><td> ' + leaveList[i]["absenceTypeID"] + ' </td><td> Maternity Leave </td> <td> ' + leaveList[i]["absLimiteDimension"] + ' </td> <td>' + leaveList[i]["calculated"] + '</td> </tr>'
                } else if (leaveList[i]["absenceTypeID"] == 'VL') {
                    var row = '<tr><td> ' + leaveList[i]["absenceTypeID"] + ' </td><td> Visit Leave </td> <td> ' + leaveList[i]["absLimiteDimension"] + ' </td> <td>' + leaveList[i]["calculated"] + '</td> </tr>'
                } else {
                    var row = '<tr><td> ' + leaveList[i]["absenceTypeID"] + ' </td><td> Earned Leave (Carry) </td> <td> ' + leaveList[i]["absLimiteDimension"] + ' </td> <td>' + leaveList[i]["calculated"] + '</td> </tr>'
                }

               

            }
           
        });

});

jQuery AJAX 循环 迭代 自动

评论

0赞 Mohamed-Yousef 3/15/2023
对于我来说,我曾经使用jquery而不是使用键和循环。它不会回答您的问题,但可能会有所帮助。为了获得更多帮助,您需要提供$.each(leaveList , function( index , obj ){ //console.log(obj); })forconsole.log(leaveList)
0赞 Nurin Azmir 3/15/2023
我也使用过每个循环,但遇到了同样的问题
0赞 Mohamed-Yousef 3/15/2023
好的,我明白了..您的代码打印了两次数据,而您不知道第二个呼叫来自哪里?右?!您可以包含两次相同的代码,或者在另一个地方重复代码。要检查此注释,请检查所有代码,然后检查是否返回了数据,然后重复代码,否则..如果你根本没有得到数据,那么你就包含两次相同的数据<script src="yourfile.js"></script>/* $.post.. */<script src="samesrc.js">

答: 暂无答案