我有这样一个页面:jquery.append() - 只有我名单的最后一个元素被添加,以前的被删除
<div id="daysTable">
<div id="day0" class="day"></div>
<div id="day1" class="day"></div>
<div id="day2" class="day"></div>
<div id="day3" class="day"></div>
<div id="day4" class="day"></div>
<div id="day5" class="day"></div>
<div id="day6" class="day"></div>
</div>
和一些JavaScript来填补我的日历这样
function getWeek(){
$.getJSON("/getWeek",function(events){
var eventHeight = $("#hoursTable > div").height();
var eventWidth = $("#daysTable > div").width();
var startWeek = events[0]// timestamp of the start of the week
for(var i = 1; i < events.length; i ++){
$(".day").empty();
var startHour = (events[i].startDate - startWeek)/3600
var duration = (events[i].stopDate - startWeek)/3600 - startHour
var dayStart = Math.floor(startHour/24);
var startHour = startHour - dayStart * 24
divEvent = $('<div id="event'+events[i].idEvent+'"/>')
.width(eventWidth-2)
.height(duration*eventHeight)
.css("border","1px solid black")
.css("margin-top",startHour*eventHeight)
.html(events[i].name);
divEvent.appendTo("#day"+dayStart);
console.log(divEvent);
}
});
}
我的问题是:事件包含3个元素,我想显示但只显示最后一个。 如果我在第一次迭代时停止了我的“for”,我可以看到第一个div被追加了,但是似乎如果我的循环进行了三次迭代,则前两个被删除。 console.log()显示一些“不再是”现有的元素。 有什么想法?
欢迎来到SO ..干杯! – Reigel 2010-05-31 01:18:44
您可能希望避免直接在JavaScript中设置边框和边距等样式,因为如果设计发生更改,这些样式可能会更改。相反,使用addClass()向您的元素添加类,然后让外部CSS文件指定日历的外观。 – Soviut 2010-05-31 01:37:53