2012-11-14 43 views
4

我想附加一些数据optionsselect特定类的菜单使用jquery data()来自jquery ajax()调用。但是当我尝试调用它时,我收到了错误,它没有被连接。或者,更准确地说,它是没有得到所有在下面的代码的antipenultimate线应用,为console.log($(this).data('address'.vendorName));给我的错误Uncaught TypeError: Cannot read property 'vendorName' of undefinedjquery数据()不附加值

$.each()循环,是因为我想也许只是用 最后刺尝试$('.vendor_address_id_' + id).data....未应用于所有具有该类的元素。但我并不认为这是必要的。我究竟做错了什么?

$.each(returnedData, function (key, val) { 
    var id = val.id; 

    //attach address information to each select option for display in .vendor_full_address_table 
    $('.vendor_address_id_' + id).each(function (k, v) { 

     $(this).data('address', { 
      'vendorName': val.vendor_name, 
      'address1': val.address1, 
      'address2': val.address2, 
      'city': val.city, 
      'state': val.state, 
      'zip': val.zip 
     }); 
     //gives error: Uncaught TypeError: Cannot read property 'vendorName' of undefined 
     console.log($(this).data('address').vendorName); 
    }); 
}); 



//console.log(returnedData); 
Object 
    address_0: Object 
     address1: "street address1" 
     address2: "" 
     city: "Kalamazoo" 
     id: "15" 
     state: "MI" 
     vendor_name: "companyA" 
     zip: "123456" 
    address_1: Object 
     etc... 
     etc... 
     etc... 
    address_2: Object 
     etc... 
     etc... 
     etc... 
+2

让我们轻松:在jsFiddle上发布此代码并删除您认为不需要的代码。 – jdigital

回答

1

而不是

val.vendor_name 

使用

returnedData.vendor_name 

这里VAL是在迭代特定returnedData[key]值的价值。

而您试图从原始类型中访问属性,这里是val

+0

好吧,关键是'vendorName'。我用'$(this).data('address',{'vendorName':val.vendor_name','你是否编辑了你原来的答案?我以为当我第一次加载这个页面时,它说我应该将'val'改为'returnedData'。非常感谢您的帮助。 – 1252748