嵌套的循环逻辑出错了

时间:2015-03-16 11:16:12

标签: jquery

我的数量为4,但是当我执行时,它会创建8行代码。

请看这是我的代码

 var addonsQtyWrap = $('<div class="addonsQtyWrap"></div>');

 var json = [{
     "name": "826_ZZ_0_ZZ_0tab1_checkbox",
         "cost": 100,
         "additionname": "Choco chips",
         "addtionid": 59
 }, {
     "name": "826_ZZ_0_ZZ_0tab2_checkbox",
         "cost": 100,
         "additionname": "Choco chips",
         "addtionid": 59
 }];

 var quantity = 4;
 var ulhtml = '<ul>';


 for (var i = 0; i < quantity; i++) {

     for (var k = 0; k < json.length; k++) {

         var name = json[k].name;

         var res = name.indexOf("tab" + (k + 1));

         if (res !== -1) {
             ulhtml += '<li    data-tabid="' + i + '"   class="tabclcik active">Qty-' + i + '</li>';
         } else {
             ulhtml += '<li    data-tabid="' + i + '"   class="tabclcik">Qty-' + i + '</li>';
         }

     }
 }
 addonsQtyWrap.append(ulhtml);
 $("#header").append(addonsQtyWrap);

http://jsfiddle.net/cod7ceho/29/

请让我知道这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:0)

你有2个循环:

//4 loops
for (var i = 0; i < 4; i++) {

 //inside each loop this will run 2 times
 for (var k = 0; k < 2; k++) {

如果您想要4行,则需要将quantity更改为2或更改代码的逻辑。