浏览 2341 次
锁定老帖子 主题:对options不可掉以轻心
精华帖 (0) :: 良好帖 (7) :: 新手帖 (7) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-10
下拉框中,接着我开始访问他们,把上一次访问的记录呈现出来,但是总是不能正常遍历下拉框的options,无论用children属性还是options属性,得到的length都是1, 怎么回事呢?难道select和options之间的关系比较特殊,要让select识别它下面的options有一个过程,于是我就在select装入options之后,两次打印了option们的长度 第一次alert的结果是在select装入options之后马上打印的,得到的是1, 第二次alert的结果自然有个延时,得到的正确的个数, 于是我得出了如下结论: select中的option被select识别是有个过程的,不是现装现访问的,必须给个延时,让select有时间的好好消化下给它的option们. 这如同iframe元素创建并添加文档树中时,都会有个冷却时间让父元素去识别它,把它交由document或window的iframe集合管理起来. 如果这是调整一下他们在文档中的位置就没有这个必要了,因为相应的集合中有他们的引用存在,不需要重新识别他们了. 现在用个两句代码来总结: appendIframeOrOptions(); window.setTimeout('visit()',500); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-01-10
javascript没那么弱吧,如果用innerHTML插入可能有问题,
你试试select.add(new Option('name','value')) |
|
返回顶楼 | |
发表时间:2008-01-10
完全是不了解DOM api执行方式,如果修改html当然需要渲染时间,如果DOM api那当然就没问题了
|
|
返回顶楼 | |
发表时间:2008-01-10
select1.options.add(new Option("aText","aValue",false,false));
这样装入没有延时。 |
|
返回顶楼 | |