将数据发送到已有数据的jquery中的li

时间:2014-01-20 14:41:52

标签: javascript jquery html css

我在这里遇到了问题。我需要将数据发送到我的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);

1 个答案:

答案 0 :(得分:0)

如果要将新元素附加到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);
});