例如:
$('body').append('<div />')
.append('<div />')
.append('<div />')
.append('<div />');
相反,更好的做法似乎是:
$('body').append('<div><div></div><div></div><div></div><div></div></div>');
但我对虚拟操作很感兴趣。
即:
$('<div />').append('<div />')
.append('<div />')
.append('<div />')
.append('<div />')
.appendTo('body');
请问这样做是否还会有不好的影响呢?显然,多次调用函数会带来一些额外开销,但是是否会对性能造成严重的影响呢?
我提出这个问题的原因是:
var divs = [
{text: 'First', id: 'div_1', style: 'background-color: #f00;'},
{text: 'Second', id: 'div_2', style: 'background-color: #0f0;'},
{text: 'Third', id: 'div_3', style: 'background-color: #00f;'},
{text: 'Fourth', id: 'div_4', style: 'background-color: #f00;'},
{text: 'Fifth', id: 'div_5', style: 'background-color: #0f0;'},
{text: 'Sixth', id: 'div_6', style: 'background-color: #00f;'}
];
var element = $('<div />');
$.each(divs, function(i,o){
element.append($('<div />', o));
});
$('body').append(element);
假设divs数组来自于描述表单的数据库表(好吧,我在示例中使用div,但它可以很容易地被替换为input)或类似的内容。
或者我们可以使用“推荐”的版本:
var divs = [
{text: 'First', id: 'div_1', style: 'background-color: #f00;'},
{text: 'Second', id: 'div_2', style: 'background-color: #0f0;'},
{text: 'Third', id: 'div_3', style: 'background-color: #00f;'},
{text: 'Fourth', id: 'div_4', style: 'background-color: #f00;'},
{text: 'Fifth', id: 'div_5', style: 'background-color: #0f0;'},
{text: 'Sixth', id: 'div_6', style: 'background-color: #00f;'}
];
var element = '<div>';
$.each(divs, function(i,o){
element += '<div ';
$.each(o, function(k,v){
if(k != 'text'){
element += k+'="'+v+'" ';
}
});
element += '>'+o.text+'</div>';
});
element += '</div>';
$('body').append(element);
append
调用与连接而言的真正区别吗?代码是为人类编写的,只有在不符合性能要求时才进行优化。 - zerkms