我在这里遇到问题。我需要将数据发送到我的li中的ul中,该数据已经与其他许多li一起存在。

这是我列出的地方:

lijst = $("<li/>")
  .appendTo("#deals")
  .data('stadnaam', oPlaats.Stad)
  .click(function() {
    showWeather($(this).data('stadnaam'));
  });

$("<span/>")
  .text(oPlaats.Prijs)
  .addClass("price")
  .appendTo(lijst);

$("<strong/>")
  .text(oPlaats.Stad)
  .appendTo(lijst);

$("<span/>")
.text(oPlaats.Land)
.appendTo(lijst);


如果单击它,则该ul中应再有2个div。我怎样才能做到这一点?我现在这样做,但是将日期放在最后一个li:

$("<br/>")
  .appendTo(lijst);

$("<div/>")
  .text(celsius)
  .addClass("weather")
  .appendTo(lijst);

$("<br/>")
  .appendTo(lijst);

$("<div/>")
  .text(oWeather[j].main)
  .addClass("weather")
  .appendTo(lijst);

最佳答案

如果要将新元素附加到UL,而不是LI,则应将其附加到元素的父元素:

$("<br/>")
  .appendTo(lijst.parent());

$("<div/>")
  .text(celsius)
  .addClass("weather")
  .appendTo(lijst.parent());

$("<br/>")
  .appendTo(lijst.parent());

$("<div/>")
  .text(oWeather[j].main)
  .addClass("weather")
  .appendTo(lijst.parent());


另一种方法是执行以下操作:

$("<br/>")
  .appendTo(lijst.closest('ul'));

$("<div/>")
  .text(celsius)
  .addClass("weather")
  .appendTo(lijst.closest('ul'));

$("<br/>")
  .appendTo(lijst.closest('ul'));

$("<div/>")
  .text(oWeather[j].main)
  .addClass("weather")
  .appendTo(lijst.closest('ul'));


但是我建议使用parent()函数。让我知道这是否可以解决您的问题。

编辑后的评论:

您应该在lijst var中添加一个click事件:

lijst.click(function() {
    var self = $(this);
    var div = $('<div />');

    self.append(div);
});

10-02 13:46
查看更多