使用AppendTo

时间:2017-03-27 21:51:47

标签: javascript jquery append each

我正在使用Trello API和javascript / jquery来创建Trello板的汇总视图。我对jquery很新,我在使用appendTo来正确布局页面时遇到了麻烦。

下面是我在返回javascript内容后获得的HTML。我的目标是将<h3><p>标记放在他们自己的div中(因此每个“列表标题”都包含在一个单独的div中),但我只能得到{{1 div中的标记,<p>就在它之外。

<h3>

这是我的javascript。我刚开始的基本HTML只包含<div id="output"> <div id="boards"> <h3 class="board">List Title 1</h3> <div> <p class="card">Card 1 Name</p> <p class="card">Card 2 Name</p> ... </div> <h3 class="board">List Title 2</h3> <div> <p class="card">Card 1 Name</p> ... </div> </div> </div> ;通过此javascript添加所有其他HTML。我认为这个问题与我如何嵌套.each()方法以及如何在其中使用appendTo()有关。

<div id="output></div>

1 个答案:

答案 0 :(得分:1)

当您致电$cards.empty();appendTo($cards);时,DOM上不存在$cards,只有在我更正的情况下,才会宣布并附加很久。

尝试将其附加到DOM之前尝试处理它。即

var $boards = $("<div>")
   .attr("id", "boards")
   .text("Loading Boards...")
   .appendTo("#output");

 Trello.get("/boards/YSP62hqc/lists", function(boards) {
   $boards.empty();
   $.each(boards, function(id, board) {

     $("<h3>")
       .attr({ href: board.url, target: "trello", value: board.id, name: board.id, id: board.id })
       .addClass("board")
       .text(board.name)
       .appendTo($boards);

     var resource = "/lists/" + board.id + "/cards";

     var $cards = $("<div>")
       .text("Loading Cards...")
       .appendTo($boards);

     Trello.get(resource, function(cards) {
       $cards.empty();
       $.each(cards, function(ix, card) {
         $("<p>")
           .attr({ target: "trello" })
           .addClass("card")
           .text(card.name)
           .appendTo($cards);
       });
     });
   });
 });