我需要从单个页面收集大量数据,但在这样做时,我觉得执行此操作所需的代码可以简化和简化。
我可以更多地压缩这段代码,还是将它压缩成可以得到的?
$.get('/blog.html', function(data){
// Post Titles
$(data).find(".blog-post:nth-of-type(1) .blog-title").appendTo(".ticker-1");
$(data).find(".blog-post:nth-of-type(2) .blog-title").appendTo(".ticker-2");
$(data).find(".blog-post:nth-of-type(3) .blog-title").appendTo(".ticker-3");
$(data).find(".blog-post:nth-of-type(4) .blog-title").appendTo(".ticker-4");
$(data).find(".blog-post:nth-of-type(5) .blog-title").appendTo(".ticker-5");
$(data).find(".blog-post:nth-of-type(6) .blog-title").appendTo(".ticker-6");
$(data).find(".blog-post:nth-of-type(7) .blog-title").appendTo(".ticker-7");
// Post Images
$(data).find(".blog-post:nth-of-type(1) img").appendTo(".ticker-image-1");
$(data).find(".blog-post:nth-of-type(2) img").appendTo(".ticker-image-2");
$(data).find(".blog-post:nth-of-type(3) img").appendTo(".ticker-image-3");
$(data).find(".blog-post:nth-of-type(4) img").appendTo(".ticker-image-4");
$(data).find(".blog-post:nth-of-type(5) img").appendTo(".ticker-image-5");
//Post Dates
$(data).find(".blog-post:nth-of-type(1) .date").appendTo(".ticker-date-1");
$(data).find(".blog-post:nth-of-type(2) .date").appendTo(".ticker-date-2");
$(data).find(".blog-post:nth-of-type(3) .date").appendTo(".ticker-date-3");
$(data).find(".blog-post:nth-of-type(4) .date").appendTo(".ticker-date-4");
$(data).find(".blog-post:nth-of-type(5) .date").appendTo(".ticker-date-5");
});
答案 0 :(得分:2)
您可以通过将当前.blog-post
的索引与目标.ticker-N
元素相关联,通过单个循环实现此目的,如下所示:
$.get('/blog.html', function(data) {
$(data).find('.blog-post').each(function(i) {
var $blog = $(this), index = i + 1;
$blog.find('.blog-title').appendTo('.ticker-' + index);
$blog.find('.img').appendTo('.ticker-image-' + index);
$blog.find('.date').appendTo('.ticker-date-' + index);
});
});