我有一个网格视图在它的第三个单元格,有文本框控件,我正在调用onchange的javascript函数。
有人能告诉我为什么这在Firefox和Chrome中不起作用,而在IE中起作用吗
grd.rows[rowindex].cells[3].childNodes[0].value
它在IE中返回正确的值,但在Chrome和Firefox(In FF and Chrome it return undefined
)中没有?
也请建议我的解决方案来处理这个问题。
- 编辑**
alert(grd.rows[ri].cells[3].childNodes[0].value);//IE value=correct value, FF and chrome value=undfined
alert(grd.rows[ri].cells[3].childNodes[1].value);//IE value=undfined, FF and Chrome value= correct value
谢谢
7条答案
按热度按时间omqzjyyz1#
我相信这是因为IE忽略了只包含换行符和制表符的文本节点。我个人更喜欢忽略它们,但我宁愿在浏览器之间保持一致性。
ezykj2lf2#
试试这个。我有同样的问题,这个问题解决了,只是取代“childNode”与“children”
cld4siwp3#
尝试
或最好的,请查看集成开发工具中的表
5jvtdoz24#
@混沌潘迪翁:
嘿,朋友,不要对子节点使用这种类型的检查。
childNode的计数方法各不相同。有些浏览器包含空textNode,有些则没有。在这类操作中,我相信您正在描述的,最好使用父节点的
getElementsByTagName()
方法。这样,子节点的数量和您要查找的每个子节点的索引将保持一致。或
请检查浏览器的名称。
如果它是IE,则由于它忽略空的textnode,所以它中的childNode比其它浏览器少一个数字。
例如
希望这对你有帮助,享受编码吧。
khbbv19g5#
如果您正在查找文本,对于非IE浏览器,请使用grd.rows[rowindex].cells[3].childNodes[0].data。
获取元素节点的文本值
获取文本节点的文本值(与以前相比安全性较低)
ckx4rj1h6#
正如ChaosPandion所说,IE忽略空白文本节点。下面应该可以跨浏览器工作:
然而,你说你在onchange上调用函数,假设这意味着文本框的onchange事件,在这种情况下,你的事件处理程序中的事件参数应该有一个指向文本框的指针,看看target或srcElement属性。
bkhjykvo7#
尝试getElementsByTagName()而不是ChildNodes。它将为FF、Chrome和IE工作。