我可以在这个.get()事件处理程序中压缩编码吗?

时间:2018-01-26 14:51:22

标签: jquery

我需要从单个页面收集大量数据,但在这样做时,我觉得执行此操作所需的代码可以简化和简化。

我可以更多地压缩这段代码,还是将它压缩成可以得到的?

$.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");

});

1 个答案:

答案 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);
   });
});