<分区>
我有一个页面,其中包含 x 个项目,每个项目都包含一个 HTML 5 输入。
当用户更改输入的值时,服务器会通过 AJAX 调用被调用。然后,服务器使用包含数量值的项目数组的 JSON 进行响应。如果返回的数量值与发送到服务器的值(输入值)不同,我需要更改输入框值,使其等于返回的数量值。
我的问题是我在警报中得到的是 undefined 而不是 id,有人可以告诉我原因吗,提前谢谢!
JavaScript:
//loop through JSON returned items array
for (var i = 0; i < data.items.length; i++) {
var id = data.items[i].id;
var title = data.items[i].title
var price = data.items[i].price
var quantity = data.items[i].quantity
var image = data.items[i].image
//output JSON to HTML
$("#result").append("<div class='column left'><img src="+ image + "width=100 height=100 style=padding:20px></div><div class='column middle' >" + " " + title + " " + price + "</div><div class='column right' ><input id='" + id + "' type=number min=1 max=10 step=1 value="+quantity+" maxlength=2 size=2 /> <br><a data-id='" + id + "' href=# id='remove'>Remove</a></div>");
//load subtotal when page loads
$('#subtotal').html(data.items_subtotal_price);
}
JSON
//QUANTITY update
$(":input").bind('keyup mouseup', function () {
$.ajax({
url: "https://example.com/cart/change.json",
dataType: "jsonp",
data: {
id: $(this).attr('id'),
quantity : $(this).val()
},
//JSON response
success: function(data) {
console.log(data); //formatted JSON data
$('#subtotal').html(data.items_subtotal_price); //set subtotal from JSON
//1. loop through JSON items for id >> get returned quantity value where id matches id of input box
//2. if quantity returned is not equal to the quantity sent then it's been disallowed by the server >> update input box value to equal returned value
// getting UNDEFINED -
alert($(this).attr('id'));
}
});
});