2

我正在使用 Google 的提要 API 并尝试以某种方式附加和包装我的标记。我从一个例子开始。

我已经为现有标记找到了这个问题的许多答案,但是我无法将其应用于循环中附加的标记。我怀疑这比我做的要简单,但还没有找到一个优雅的解决方案。

我想把每两个循环包装起来,附加<li><ul>这样的:

<div id="result">
    <ul>
        <li><a ...></li>
        <li><a ...></li>
    </ul>
    <ul>
        <li><a ...></li>
        <li><a ...></li>
    </ul>
    <ul>
        <li><a ...></li>
        <li><a ...></li>
    </ul>
</div>

这是我的简化代码:

<!doctype html>
<head>
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
  <script type="text/javascript" src='http://www.google.com/jsapi?key=[ key ]'></script><script>
    google.load("feeds", "1");
    $(function(){
      var feed = new google.feeds.Feed("[ feed URL ]");
      feed.load(function(result) {
        if (result.error)return;

        $feed = $('#result');

        for (var i = 0; i < 6; i++) {
          var entry = result.feed.entries[i];

          $feed.append(
            '<li>'+
            '<a class="headline" href="'
            + entry.link +
            '">'
            + entry.title +
            '</a><span>'
            + entry.publishedDate + 
            ' | ' 
            + entry.author + 
            '</span></li>'
            );
        }
      });
    });
  </script>
</head>
<body>
  <div class="articles">
    <div id="result">

    </div>
  </div><!-- e .articles -->
</body>
</html>

我可以添加什么来完成这项工作?

4

1 回答 1

1

您已经在使用循环遍历所有结果for

您可以使用javascript 模数运算符检查您是否在位置 0、2 或 4,并相应地添加<ul>and</ul>标记

例如在 for 循环中打开ul标签

if (i%2 == 0)
   $feed.append('<ul>' + '<li>' ...);

并关闭ul标签

if (i%2 == 1)
   $feed.append(... '</li>' + '</ul>');

旁注:更优雅的是,您可以使用jQuery each 函数来迭代数组。

于 2012-12-03T21:45:35.773 回答