我在使用某些jQuery代码时遇到了问题,而且我现在没有确切的代码,但我会尽力给出伪代码。我对javascript比较新,所以有些语法可能有误。
我正在为表中的每一列动态创建不同值的HTML列表,然后将它们放在单击列标题时打开的菜单中(如Excel中的表格一样)。所以我有一个字符串数组,我为每一列调用一行函数(有12个):
$(name of ul element).empty().append(myFunction(items, nColumnNum));
然后我调用的函数如下:
myFunction(items, nColumnNum) {
var r = "";
var i = 0;
for (i = 0; i < items.length; i++)
{
r += "HTML with <li> tag with checkbox and label inside"
}
return r;
现在我已经做了一些基本的分析,我知道'myFunction'并不是那么久。需要很长时间的部分是'.append'函数调用。这在Firefox中速度非常快,但在IE 10中,当我处理'items'数组中的大约2200个项目时,大约需要1.5秒。由于有几列有这么多项目,而且我有12列,这需要很长时间。我试过单独附加每个列表元素(虽然我认为这不起作用)并且我尝试设置innerHTML而不是'.append',但它都不起作用。
IE引擎中是否存在某种类型的错误,如果是这样,是否有针对这种情况的解决方法?或者是否有更有效的方法来做到这一点?
提前谢谢。
答案 0 :(得分:0)
请找到与之相关的小提琴,在IE上也能正常使用。
让我们举一个有项目的例子
var items = [1,2,3,4,5,6,7,8,9,10,11,12,13];
items.length = 2200;
JS代码
$(document).ready(function(){
$("#list_elements").empty().append(myFunction(items, 10));
});
function myFunction(items, nColumnNum) {
var r = "";
var i = 0;
for (i = 0; i < items.length; i++)
{
r += "HTML with <li> tag with checkbox and label inside"
}
return r;
}
html代码:
<ul id="list_elements"></ul>