这是挑战; 如何使用jquery / Javascript对包含超过500行的表进行迭代(+更改元素属性,同时这样做)?增加的挑战是浏览器是IE8。
我尝试在桌面上使用for循环和$ .each ...我得到了工作,但它减慢了该死的IE并抛出脚本错误(错误:你想继续这个脚本吗?它可能会减慢你的电脑...... bla bla bla。
问题不是要知道如何迭代和更改单个列的属性,而是如何优化此过程。
非常感谢任何帮助。
答案 0 :(得分:2)
通常,如果您正在执行时间要求严格的任务,请不要使用jQuery。每个$('.classname')
执行至少20条jQuery行,特别是在IE8的情况下,还有大量的本地迭代文档。
IE8中执行的脚本行有一个限制。默认情况下,它执行一百万行,然后询问用户是否要继续该脚本。此限制由注册表控制,但在Web应用程序的情况下,增加课程价值是没有用的。
在IE8中,渲染速度也是一个问题。
innerHTML
/ innerText
,请使用createElement()
和/或createTextNode()
和appendChild()
和/或insertBefore()
代替。getElementsBy/Tag/Class/Name()
时尽可能地缓存元素。table.rows
和table.rows[n].cells
个收藏。答案 1 :(得分:1)
你有没试过这个
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
}
}