这是挑战;如何使用 jquery/Javascript 在包含超过 500 行的表上迭代(+更改元素属性,同时这样做)?增加的挑战是浏览器是 IE8。
我尝试在桌子上使用 for 循环和 $.each ......我得到了工作,但它减慢了该死的 IE 并抛出脚本错误(错误:你想继续这个脚本吗?它可能会减慢你的计算机速度。 .bla bla bla)。
问题不在于知道如何迭代和更改各个列的属性,而在于如何优化这个过程。
任何帮助深表感谢。
这是挑战;如何使用 jquery/Javascript 在包含超过 500 行的表上迭代(+更改元素属性,同时这样做)?增加的挑战是浏览器是 IE8。
我尝试在桌子上使用 for 循环和 $.each ......我得到了工作,但它减慢了该死的 IE 并抛出脚本错误(错误:你想继续这个脚本吗?它可能会减慢你的计算机速度。 .bla bla bla)。
问题不在于知道如何迭代和更改各个列的属性,而在于如何优化这个过程。
任何帮助深表感谢。
一般来说,如果你正在执行一个时间紧迫的任务,不要使用 jQuery。每个$('.classname')
执行至少 20 行 jQuery 行,尤其是在 IE8 的情况下,还有大量的本机迭代文档。
在 IE8 中执行的脚本行有限制。默认情况下它执行一百万行,然后询问用户是否要继续执行脚本。此限制由注册表控制,但对于 Web 应用程序,增加价值当然没有用。
在 IE8 中渲染速度也是一个问题。
innerHTML
/ innerText
,使用createElement()
和/或createTextNode()
和appendChild()
/或insertBefore()
代替。getElementsBy/Tag/Class/Name()
。table.rows
和table.rows[n].cells
集合。你试过这个吗
var table = document.getElementById("mytab1");
for (var i = 0, row; row = table.rows[i]; i++) {
//iterate through rows
//rows would be accessed using the "row" variable assigned in the for loop
for (var j = 0, col; col = row.cells[j]; j++) {
//iterate through columns
//columns would be accessed using the "col" variable assigned in the for loop
}
}