var itemLength= $('.item').length;
$.each(JSON.parse(json), function(idx, obj) {
var itemId= obj.itemId;
if(itemId!= null){
var temp = '<div id="'+ itemId +'"></div>'
$(temp).appendTo($('#somewhere'));
}
});
如何防止最后一个itemId被追加? idx不等于项目的长度?
答案 0 :(得分:2)
如何防止最后一个itemId被追加? idx不等于项目的长度?
这是两种直截了当的方式之一,是的,那是slice
:
如果使用forEach
而不是$.each
(我假设JSON定义了一个数组),那么使索引更容易,因为它为您提供了对数组的引用:
JSON.parse(json).forEach(function(obj, idx, array) {
if (idx < array.length - 1 && obj) {
if (obj.itemId) {
$('#somewhere').append('<div id="' + obj.itemId + '"></div>');
}
}
});
但如果您更喜欢$.each
:
var data = JSON.parse(json);
$.each(data, function(idx, obj) {
if (idx < data.length - 1 && obj) {
if (obj.itemId) {
$('#somewhere').append('<div id="' + obj.itemId + '"></div>');
}
}
});
或者,您可以使用slice
:
JSON.parse(json).slice(0, -1).forEach(function(obj) {
if (obj && obj.itemId) {
$('#somewhere').append('<div id="' + obj.itemId + '"></div>');
}
});
或者:
$.each(JSON.parse(json).slice(0, -1), function(idx, obj) {
if (obj && obj.itemId) {
$('#somewhere').append('<div id="' + obj.itemId + '"></div>');
}
});
(当你给slice
一个负面索引时,它被视为距离结尾的偏移量。)
无论您使用什么,我都可能会查找#something
一次并重复使用生成的jQuery对象。