超大型的dom树下,如何根据属性快速定位某一个dom结点?(ext的选择器太慢了)

这两天设计一个表格的时候,碰到一个问题.

背景是这样的.我要设计一个一部分列固定的表格(类似于excel的冻结功能).我的实现是左右各一个table,右边的table滚动时,同时左边的table也滚动到相同的位置.(实际上,左右两个table都是模拟的,因为要装载超大量的数据,html的table标签在渲染速度有够呛,但左右两个table的dom结构完全一样).因为原来的公司用Ext用习惯了,所以这次底层的lib用的是ext-core.

用户点击左右Table中的某一行以后,会给这一行加上一个css来标志己选择.然后找到另一个table,找到其中对应的一行,同样也加上css.

但现在的问题是,无论左右哪个table被用户点击到,能够快速响应的只有这个table,对应的另一个table中要花大量的时间来找到对应的这一行.(我的方法是在生成左右table的行时,都加上一个行号的属性,然后用ext的选择器来找到.但在1000行的情况下,效率就己经相当低了.)

各位有没有办法解决这个问题? 我现在有一个想法,但未实现,不知道效果如何.

我的想法:
先找到这个被点击的行在所处的Table中的位置,类似于xpath这样的,然后根据这个xpath去另一半table中找对应的结点.理论是应该会快很多.但不知道有没有简单的方法生成一个这样的xpath,我所了解的只有一层一层向上找.

各位还有没有其它想法可以指教一下?
问题补充
原来我这么笨...

谢谢金龙同学哈...

5个回答

用选择器当然慢了,你可以为每一行设置一个有规则的id,用documentById来获取对应的行即可

我只能说:标题很吸引人。。。。

标题确实很吸引人

我也很快被吸引过来了...

首先,如果测试的环境是IE8,那么请添加

在IE8模式下,大DOM效率很差

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问