我有以下代码来使用ajax获取json响应。从响应我采取“prodId”。 当页面加载和每个响应将包含不同的“prodId”时,更多响应将进入页面。我需要检查“prodId”是否已收到。 我在页面中已经有了一些div,上面有上面提到的prodId。
我是处理数组的新手。有一点要记住,所有json响应都在页面加载中。因此,在得到第一个响应后,我需要检查任何重复的响应即将到来,应该避免它。请帮帮我
$.ajax({
type: "GET",
dataType: "jsonp",
success: function(data){
prodId = data.prodID;
//populate this data in page
});
答案 0 :(得分:1)
向元素添加内容,以帮助您根据prodID
识别它们。元素ID在这里非常适合,但如果您正在使用其他内容,只需添加另一个类。
newElement.addClass('prod-' + data.prodID);
然后在决定是否向DOM添加新元素时,只需检查:
if($('.prod-' + data.prodID).length == 0) { ... }
你当然可以创建一个本地字典并在内存中而不是在DOM中执行查找:
var addedProducts = {};
每次向DOM添加元素时:
addedProducts[data.prodID] = newElement;
决定是否向DOM添加元素时:
if(!addedProducts.hasOwnProperty(data.prodID)) { ... }
完整的代码可能如下所示:
success: function(data){
prodId = data.prodID;
if($('.prod-' + prodId).length == 0) {
var newElement = $('<div/>').html(some content as determined by data);
newElement.addClass('prod-' + prodId);
newElement.appendTo('body');
}
});
当然,如何创建元素以及添加它们的位置取决于您想要实现的目标。我相信你已经在“填充页面中的数据”评论中找到了这个。您需要添加的只是addClass
调用和包装if
。