2009-06-23 65 views
10

我正在做一个日历页面,允许用户点击一天,然后用弹出的窗体输入当天的条目。用jQuery将HTML注入DOM的最佳方式是什么?

我对jQuery的DOM操作并不陌生,但这是我以前做过的事情,我开始怀疑是否有更高效的方法来做到这一点?

在JavaScript中手动构建HTML是最有效的方式(我假设这是真的,通过使用像appendTo()等函数)或将创建一个隐藏的构造在DOM内,然后克隆它更好?

理想情况下,我想知道这样做的最佳方法,以提供代码整洁性和性能之间的平衡。

感谢,

回答

14

在JavaScript中处理大量的HTML字符串会非常快速地变得非常难看。由于这个原因,可能值得考虑一个JavaScript“模板引擎”。他们不需要很复杂 - 通过Resig检查this one

如果你不是那么做的话,那么继续照样可能很好。请记住,与字符串操作相比,DOM操作通常非常缓慢。

的这种性能差距的一个例子:

// DOM manipulation... slow 
var items = ['list item 1', 'list item 2', 'list item 3']; 
var UL = $('<ul/>'); 
$.each(items, function(){ 
    UL.append('<li>' + this + '</li>'); 
}); 

// String manipulation...fast 
var items = ['list item 1', 'list item 2', 'list item 3']; 
var UL = $('<ul/>').append('<li>' + items.join('</li><li>') + '</li>'); 
3

Here你可以找到解释。

0

也许不是最流行的方法。

在后端生成html代码。该对话框将在CSS隐藏div。当你想要“弹出”时,只需应用不同的CSS样式并更改隐藏的输入值(我猜对话与该特定日期交互)。

相关问题