2011-10-13 86 views
0

這是我的jQuery的響應:jQuery對象作爲參數傳遞給函數

[ 

    { "depot": 
     { 
     "id": "D1", 
     "intersection": { 
      "first": "Markham", 
      "second": "Lawrence" 
     }, 
     "address": { 
      "number": "25", 
      "street": "Cougar Court", 
      "city": "Scarborough", 
      "province": "ON", 
      "postal_code": "M1J" 
     } 
    }, 
    "vehicle": [ 

      { 
       "id": "V1", 
       "depot_id": "D1", 
       "model": "Ford Focus", 
       "price": "45", 
       "km_per_litre": "15", 
       "cargo_cu_m": "YES", 
       "category": "Compact car", 
       "image": "www.coolcarz.com" 
      } 

       , 

      { 
       "id": "V2", 
       "depot_id": "D1", 
       "model": "Honda Civic", 
       "price": "45", 
       "km_per_litre": "150", 
       "cargo_cu_m": "YES", 
       "category": "Compact car", 
       "image": "www.coolcarz.com" 
      } 

       , 

      { 
       "id": "V8", 
       "depot_id": "D1", 
       "model": "Pontiac Aztek", 
       "price": "10", 
       "km_per_litre": "6", 
       "cargo_cu_m": "YES", 
       "category": "SUV", 
       "image": "www.nocoolcarz.com" 
      } 

       , 

      { 
       "id": "V12", 
       "depot_id": "D1", 
       "model": "Chevrolet Impala", 
       "price": "45", 
       "km_per_litre": "12", 
       "cargo_cu_m": "YES", 
       "category": "Standard car", 
       "image": "www.coolcarz.com" 
      } 

       , 

      { 
       "id": "V29", 
       "depot_id": "D1", 
       "model": "Nissan Leaf", 
       "price": "150", 
       "km_per_litre": "0", 
       "cargo_cu_m": "YES", 
       "category": "Electronic Car", 
       "image": "www.coolcarz.com" 
      } 

     ] 
    } 

    , 

    { "depot": 
     { 
     "id": "A1", 
     "intersection": { 
      "first": "Markham", 
      "second": "Lawrence" 
     }, 
     "address": { 
      "number": "25", 
      "street": "Cougar Court", 
      "city": "Scarborough", 
      "province": "ON", 
      "postal_code": "m1J" 
     } 
    }, 
    "vehicle": [ 

     ] 
    } 

    ] 

我想要做的是,在我的代碼的某個時刻,當我收到這個響應的數據,我想通過,說數據[0]或或數據[0] .vehicle [1]對功能 我現在做的方式是:

function(data) { 
    var items = []; 
    for(i=0; i<data.length; i++){ 
     items.push('<b>' + data[i].depot.intersection.first+"-"+ data[i].depot.intersection.second + " depot has following cars:"+ '</b>'); 
     for(k=0; k<data[i].vehicle.length;k++){ 
      str = '<li> <a href="#" onClick="moreInfo('+data+')">' +  data[i].vehicle[k].category +"</a>, $"+ data[i].vehicle[k].price +' a day </li>'; 

            items.push(str); 

實際上我想創建一個超鏈接(與車輛的類別爲文本),當用戶點擊這個超鏈接時,我想將車輛信息數組傳遞給一個名爲moreIn的新函數它的工作。 Rit現在當我這樣做,然後單擊超鏈接,我看到錯誤

missing ] after element list 
timepass([object Object],[object Object] 

任何想法?

回答

0

從json代碼的開頭和結尾刪除2個方括號,並將其用作對象而不是數組。

你所做的是創建一個不是JSON對象的對象數組

+0

這是不正確的。有效的JSON可以具有一個對象('{}')或數組('[]')作爲其最頂層的對象。請參閱[RFC](http://www.ietf.org/rfc/rfc4627.txt?number=4627)的開頭部分:「JSON文本是序列化的對象或數組。」JSON-text = object/array '「 –

+0

我不是說它不正確只是建議使用對象表示法而不是數組表示法。對不起,如果我讓這個混淆 – WooDzu

+0

WooDzu你能更具體嗎? – kk1957

相關問題