2011-10-13 90 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

相关问题