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