firstElementChild在Internet Explorer 7中不起作用...我有什么选择?

如何解决firstElementChild在Internet Explorer 7中不起作用...我有什么选择?

| 考虑以下JavaScript:
var v;
if (this.children.length > 0) {
    v = this.firstElementChild.value;
}
在现代版本的FireFox和Chrome中可以使用,但是
this.firstElementChild.value
在Internet Explorer 7-8中引发异常。我还有另一种方法可以使它适用于所有浏览器吗? 更新-最终解决方案 我进行以下操作:
v = (this.firstElementChild || this.children[0] || {}).value
-谢谢大家。     

解决方法

        我不知道,也许
this.children[0].value
?     ,        
this.firstElementChild
应该在所有重要的IE <= 9浏览器栏和Firefox 3(QuirksMode)中起作用。 “ѭ5”将在每个重要的浏览器栏中运行Firefox 3,但IE <= 9会将注释节点视为元素节点(QuirksMode)。这可能对您来说不是问题。 通用系统是这样的:
var node = this.firstChild,firstElementChild = null;

for ( ; node; node = node.nextSibling) {
    if (node.nodeType === 1) {
        firstElementChild = node;
        break;
    }
}
如果存在第一个元素子元素,则
firstElementChild
将成为第一个子元素,否则
null
。出于性能原因,最好在执行循环之前先查看to4是否存在。     ,        如果您的代码在事件处理程序中,并且该函数与\“ attachEvent \”绑定,则\“ this \”关键字将绑定到\“ window \”对象而不是HTMLElement。 尝试:
function doSomething(e) {
    var targ;
    if (!e) var e = window.event;
    if (e.target) targ = e.target;
    else if (e.srcElement) targ = e.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
        targ = targ.parentNode;
}
检查http://www.quirksmode.org/js/events_properties.html。     ,        尝试以下方法:
var v;
if (this.children.length > 0) {
    v = this.firstChild;
}
在现代浏览器中,第一个孩子通常将是文本段     ,        我们在IE11中遇到了这个问题,并发现.firstChild()是所有浏览器中的可靠修复程序。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?