我以为我在第一次发布jQuery 1.4时已经看过这个,但现在似乎找不到任何东西。
我有一个日历表,它是从json ajax响应中动态构建的。
该表构建在一个名为putHtml的变量中。
目前,一旦将表添加到DOM中,我就运行一个showEvents函数,该函数接收每个事件并将其添加到表中的相应单元格中。 不幸的是,当我有100个事件时,这意味着我正在更新DOM 100单独的时间。这变得相当缓慢。
我使用showEvents函数动态添加事件,所以如果我可以使用相同的函数,并指定在DOM中查找要添加事件的单元格,或者查看变量,那将是非常好的(假设我做对了,你可以用jQuery实际做到这一点。
我使用的代码是这个
jQuery('div#calendars').append('putHtml.join('')); for(var e in thisCal.events){ showEvent(thisCal.events[e]); }
我试图做的是
for(var e in thisCal.events){ showEvent(thisCal.events[e],putHtml); } jQuery('div#calendars').append('putHtml.join(''));
showEvents函数看起来像这样
function showEvents(event){ var eventDate=event.date; var eventTime=event.time; var eventGroup=event.group; var eventName=event.name; var eventType=event.type; var whereEvent=jQuery('div.a'+eventDate, 'table.'+eventGroup); var putEvent='<div class="event" id="a+'eventDate+'_'+eventTime+'">'+eventName+'</div>' jQuery(whereEvent, 'div#calendar').append(putEvent); if(eventType>2){ jQuery(whereEvent, 'div#listings').append(putEvent); } }
在尝试在添加到dom之前操作变量putHtml时,我将putHtml传递给showEvent函数,所以不是'(whereEvent,'div #calendar'),我有(whereEvent,putHtml),但是没有不行。
当然,实现这一目标的另一种方法是,当我创建每个单元格时,我遍历事件json,并在当时将适当的html应用于单元格,但这意味着重复地在整个json中运行为了让事件放入单元格。
有没有其他/更好的方式来做这样的事情?
答案 0 :(得分:2)
我想我曾经有类似的问题。也许这有助于你:
Manipulating the “
data
” from$.ajax success: function(data) {