第一的:
var jsonObj = []; //declare object
这不是 JSON。这是一个数组。JSON 只是 Javascript 对象的表示法。要声明一个对象,您应该这样做:
var jsonObj = {};
或者:
var jsonObj = new Object();
在此之后,您可以按照您的要求执行此操作:
var counter = 0;
var jsonObj = new Object();
$('.imgbtn').click(function () {
var title = $(this).parent().parent().find('span').html();
var image = $(this).parent().parent().find('img').prop('src');
if (!(title in jsonObj)) { // if item is not in the object, (title in jsonObj) returns true of false
jsonObj[title] = { // When you have hundreds of items, this approach is way faster then using FOR loop, and if you need to alter the item or get one value, you can just call it by name: jsonObj['ABC'].image will return the path of the image
id: counter,
image: image,
description: 'Example'
}
counter++;
$('#lblCart').html(counter);
} else {
// Do what you want if the item is already in the list
alert('Item already in the list');
console.log(jsonObj[title]);
}
});
不要使用 FOR 循环来做你不想做的事情,如果计数器变高,它只会减慢你的应用程序。