YUI2.6的DataTable.getRecord(trEl)在某些IE6取不到结果的bug

本文介绍了在IE6浏览器中使用YUI DataTable时出现的问题及解决方案,主要问题是tr.ownerDocument返回null导致无法获取记录。文章提供了替代方法来解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

症状

取不到会导致很多DataTable无法全选,无法获取选中的项

 

原因

某些IE6下tr.ownerDocument返回的不是其所属的document而是null,这样yui的getTrEl函数也返回了null,最终导致getRecord返回null

 

解决方法

不使用DataTable的getRecord方法,而自己实现其内部语句,跳过其getTrEl方法,直接调用如下

        record = dataTable._oRecordSet.getRecord(dataTable.getRecordIndex(htmlE.sectionRowIndex));
其中dataTable即为DataTable,htmlE就是trEl。

 

附加说明:

如果你得不到trEl,只能得到里面的某个子元素比如tdEl等,可以使用如下方法得到trEl

                elRow = Dom.getAncestorByTagName(elRow,"tr");
其中elRow就是你的tdEl,而Dom是YAHOO的Dom。

 

 

补充:

getNextTrEl也有同样问题,替换方法为

                htmlE=dataTable._elTbody.rows[htmlE.sectionRowIndex+1];

 

现在出了2.8和3.0,不知道是否解决了这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值