在ajax成功函数中,我使用vktemplate将一些项目放入下拉列表中。但是,我想向它们附加一些数据,以便当用户选择地址名称时,我可以快速从jquery数据对象中提取整个地址。
此
success: function (returnedData) {
$('.vendor_address_select').vkTemplate('templates/vendor_addresses_by_sector_dropdown_template.tmpl?<?=time()?>', returnedData, function () {
$.each(returnedData, function (key, val) {
var id = val.id;
//dropdown option looks like this:
//<option id="vendor_address_id_22">company1</option>
$('#vendor_address_id_' + id).data('address', {
'vendorName': val.vendor_name,
'address1': val.address1,
'address2': val.address2,
'city': val.city,
'state': val.state,
'zip': val.zip
});
});
});
}
给了我这个错误 未捕获的TypeError:无法调用未定义的方法'split'
当我尝试访问这样的数据时:
$(document).ready(function () {
$('.vendor_address_select').change(function () {
var selectedAddress = $('option:selected', this);
console.log(selectedAddress.data());
});
});
我如何滥用jquery的data()
?
模板文件:
<% for ( var i = 0 in o ) { %>
<option id="vendor_address_id_<%=o[i].id%>">
<%=o[i].vendor_name%></option>
<% } %>
答案 0 :(得分:4)
使用.data()
时,您必须指定密钥“地址”
$(document).ready(function () {
$('.vendor_address_select').change(function () {
var selectedAddress = $('option:selected', this);
console.log(selectedAddress.data('address'));
});
});