繁体   English   中英

jQuery / javascript优化

[英]jQuery/javascript optimization

$("#mySelect").change(function() {

  var myVar = $('#MyDiv');

  for (var i=0;i<this.value;i++)
    {
     myVar.clone().appendTo('#formContainer');
    }
});

欢迎提高可读性或性能

DOM重写是最昂贵的。 在内存中(或作为字符串)构建HTML,然后将其插入到循环之后。

我同意@Diodeus,您应该先创建html字符串,然后一次性添加它。 尝试这个。

$("#mySelect").change(function() {
  var myVar = $('#MyDiv'),
      html = [],
      count = parseInt(this.value, 10),
      myDivHTML = $('#MyDiv').wrap('<div />').parent().html();
  for (var i = 0; i < count; i++){
     myVar.push(myDivHTML);
  }
  $('#formContainer').append(html.join(''));
});

您在这里(我就是这样做的):

$("#mySelect").live('change', function() {
    var html = $('<div />').append($('#my-div').clone());
    for (var i = 0; i < this.value; i++) {
        html.append(html.clone());
    }
});

如果我理解正确,您每次尝试将克隆嵌套在div中...对我来说似乎很奇怪...也可以使用live('change', ...); 绑定触发器,在这种情况下,您的代码不仅可以在开始的HTML上加载,而且也可以通过AJAX加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM