2016-12-18 14 views
0

にエラーが発生私のjQueryのコードを超えた最大コールスタックのサイズがある:この質問の名前に似ているベアリング、他の多くの質問によるとキャッチされない例外RangeError:jQueryの

$.post($("#list").attr('action'), data, function(json) 
{ 
    if(json.listArr.length>0) 
    { 
     $.each(json.listArr, function() { 
      var $tr = $('<tr>', { 
       class : "catHead", 
      }); 
      var $td = $('<td>', { 
       colspan : 11, 
       text : this.category 
      }); 
      $("#listDB").append($tr.append($td)); 

      $.each(this.value, function() { 
       var $tr = $('<tr>',{ 
        class : "data" 
       }); 

       var $td = $('<td>', { 
        html : '<input type="checkbox" id="selected[]" value="'+this.id+'" name="selected[]" /></td>' 
       });$tr.append($td); 
       $td = $('<td>', { 
        text : this.id 
       });$tr.append($td); 
       $td = $('<td>', { 
        text : this.catCount 
       });$tr.append($td); 
       $td = $('<td>', { 
        text : this.shop 
       });$tr.append($td); 
       $td = $('<td>', { 
        text : this.item 
       });$tr.append($td); 
       $td = $('<td>', { 
        text : this.qnty 
       });$tr.append($td); 
       $td = $('<td>', { 
        text : this.unit 
       });$tr.append($td); 
       $td = $('<td>', { 
        text : this.price_based_on 
       });$tr.append($td); 
       $td = $('<td>', { 
        text : this.mrp 
       });$tr.append($td); 
       $td = $('<td>', { 
        text : this.sellers_price 
       });$tr.append($td); 

       var formattedDate = new Date(this.last_updated_on); 
       var d = formattedDate.getDate(); 
       var m = formattedDate.getMonth(); 
       m += 1; // JavaScript months are 0-11 
       var y = formattedDate.getFullYear(); 
       var date = (d<10?"0":"")+d+"-"+(m<10?"0":"")+m+"-"+y; 
       $td = $('<td>', { 
        text : date 
       });$tr.append($td); 

       $("#listDB").append($tr); 
      }); 
     }); 
    } 
},"json"); 

、私は外を見てする必要があります再帰的に呼び出す2つの関数しかし、私は、問題のセクション(これ)を見つけるために(このコードの一部分である私のコード全体の)セクションを削除し始めました。私の人生のために、私はお互いを再帰的に呼び出す2つの関数を見つけることができません。では、このエラーの原因は何ですか?

は、ここでJSONデータの一部です:

{ 
    "listArr": [ 
    { 
     "category": "Fruits", 
     "value": [ 
     { 
      "id": "127", 
      "catCount": "1", 
      "shop": "More", 
      "item": "Apples", 
      "qnty": "1", 
      "unit": "kg", 
      "price_based_on": "Kilos", 
      "mrp": "90.00", 
      "sellers_price": "90.00", 
      "last_updated_on": "2016-12-03" 
     }, 
     { 
      "id": "128", 
      "catCount": "2", 
      "shop": "More", 
      "item": "Oranges (Nagpur)", 
      "qnty": "1", 
      "unit": "Piece", 
      "price_based_on": "Piece", 
      "mrp": "8.00", 
      "sellers_price": "8.00", 
      "last_updated_on": "2016-12-03" 
     } 
     ] 
    } 
    ] 
} 

はそれが役に立てば幸い!

+1

これが答えではないですが、あなたが本当にテンプレートの枠組みを検討する必要がありますこのようなもののためのハンドルバーのように、あなたはもっと少なく、より読みやすく、テスト可能なコードでそれを行うことができます。 –

+0

@DarrenSweeneyは、上記のフレームワークを使用してこのコードを書き換えることができますか? –

+0

簡単に、瞬間のようなものを使用してください。 jsはすべての日付のものを1つの行に凝縮させる可能性があります - 読んで試してみてください。 –

答えて

0

解決しました。

まだ存在していないサーバーにデータを送信しようとしました。これがどのようにこのようなエラーを引き起こしたかは、私には分かっていませんでした。使用してデータを送信する前に

var data = $("#list :input").serialize(); 

::私が行うために必要なすべての行を挿入することでした

$.post($("#list").attr('action'), data, function(json) 
関連する問題