js 获取iframe元素慢。

sgdb 2008-06-18 10:52:08
for (i = 0; i < window.self.frames["frame"].document.forms[0].elements.length; i++)
{
obj = window.self.frames["selectcsr"].document.forms[0].elements[i];
if (obj.type == "checkbox" && obj.checked ){

}
}

这段js 是我获取page上一个iframe里的form的所有元素,大概8000多个元素。在forefox上,执行这段code只须几秒就可以完成,但是在ie上却花了5分钟,哪位高手能给个优化建议,谢谢! 顺便说下,iframe里那些checkbox我都没有勾,也就是说if (obj.type == "checkbox" && obj.checked )这个if根本没有进去,都那么慢。
...全文
511 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dushengjun 2008-06-18
  • 打赏
  • 举报
回复
var els=window.self.frames["frame"].document.forms[0].elements;//先得到引用,你下面的代码会多次搜索dom
var len = els.length;
for (i = 0; i < len; i++)
{
obj = els[i];
if (obj.type == "checkbox" && obj.checked ){

}
}
不必每次都计算长度,线性计算次数减少。
老田低代码 2008-06-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 showbo 的回复:]
JScript code//更正下代码:)
var els=window.self.frames["frame"].document.forms[0].elements;//先得到引用,你下面的代码会多次搜索dom
for (i = 0; i < els.length; i++)
{
obj = els[i];
if (obj.type == "checkbox" && obj.checked ){

}
}
[/Quote]

同意。
Go 旅城通票 2008-06-18
  • 打赏
  • 举报
回复
//更正下代码:)
var els=window.self.frames["frame"].document.forms[0].elements;//先得到引用,你下面的代码会多次搜索dom
for (i = 0; i < els.length; i++)
{
obj = els[i];
if (obj.type == "checkbox" && obj.checked ){

}
}
Go 旅城通票 2008-06-18
  • 打赏
  • 举报
回复
var els=window.self.frames["frame"].document.forms[0];//先得到引用,你下面的代码会多次搜索dom
for (i = 0; i < els.length; i++)
{
obj = els[i];
if (obj.type == "checkbox" && obj.checked ){

}
}
jacklinchen 2008-06-18
  • 打赏
  • 举报
回复
也得执行此if语句啊,都需要判断一下是否有选中

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧