【发布时间】:2012-10-18 04:47:54
【问题描述】:
我的JS是
b = "form#recipeSearch";
c = $(b).attr('action') + '?r';
f = "#searchResults";
var opentemplate = '<div class="row">';
var closetemplate = '</div>';
perPageLimit = response.max;
totalResults = response.total;
o = 0; // global counter
$.each(response.items, function(i,item) {
var template = ' <div class="col3 boxee wrappedImg" id="' + item.uid + '">'
+ ' <div class="recipe-info">'
+ ' ' + item.nutritional.calories + ' CAL'
+ ' ' + item.rating
+ ' </div>'
+ ' <a href="' + item.link + '" rel="popover" title="' + item.title + '" data-content="' + item.description + '"><img src="' + item.image + '" alt="' + item.title + '"></a>'
+ ' </div>';
if(o == 0){ // if start of rows display open template
$(f).append(opentemplate);
}
$(f).append(template); // inject template
if(o == 4){ // if end of rows close template
$(f).append(closetemplate);
o = 0; // reset global counter
}
if(o == item.length - 1){ // if last item close the div
$(f).append(opentemplate);
}
o++; //plus global counter
});
目前显示为:
<div class="row"></div> <!-- ONLY ONCE :( -->
<div class="col3 boxee wrappedImg"></div>
<div class="col3 boxee wrappedImg"></div>
<div class="col3 boxee wrappedImg"></div>
<div class="col3 boxee wrappedImg"></div>
<div class="col3 boxee wrappedImg"></div>
<div class="col3 boxee wrappedImg"></div>
<div class="col3 boxee wrappedImg"></div>
等等……
我在哪里寻找它
<div class="row">
<div class="col3 boxee wrappedImg"></div>
<div class="col3 boxee wrappedImg"></div>
<div class="col3 boxee wrappedImg"></div>
<div class="col3 boxee wrappedImg"></div>
</div>
然后每4个项目依次类推,直到到达末尾,然后放i v>
现在我正在尝试获取代码,如果 i = 0 然后显示行标记的开头,然后在 4 个项目之后,关闭 div,然后继续直到他们得到最终结果,如果它是结束显示结束 div。
任何建议,我已经研究了一段时间了..
【问题讨论】:
-
o在哪里增加?小提琴可能会有所帮助
-
o在哪里增加? f 是什么?
-
我已经更新了代码。 @PulkitMittal 现在小提琴不是一个可行的选择。
-
openTemplate 如果是最后一项,为什么还要再插入呢?那不应该是 closeTemplate 吗?
-
我只想在每四个项目之前插入 openTemplate,在所有四个都插入之后,我插入 closeTemplate 然后将计数器重置为 0 并重新开始检查。
标签: jquery append each prepend