当前位置: 首页 > 面试题库 >

getElementsByClassName()在旧的Internet Explorer(如IE6,IE7,IE8)中不起作用

狄安歌
2023-03-14
问题内容

如下代码:

var borderTds = document.getElementsByClassName('leftborder');

在Internet Explorer 6、7和8中给我一条错误消息:

对象不支持此方法

如何在这些浏览器中按元素类别选择元素?

我宁愿不使用JQuery。


问题答案:

此解决方案可能会有所帮助。这是使用getElementsByClassName纯javascript实现的自定义函数,可在IE中使用。

本质上,此脚本正在执行的工作是一个接一个地探测所有可能的选项,并选择可用的最佳选项。这些选项是:

  1. 本机document.getElementsByClassName功能。
  2. document.evaluate 函数,该函数允许评估XPath查询。
  3. 遍历DOM树。

当然,第一个是性能最佳的,但是后者应该随处可用,包括IE 6。

页面上也提供了用法示例,如下所示:

getElementsByClassName("col", "div", document.getElementById("container"));

因此该函数允许使用3个参数:类(必需),标签名称(可选,如果未指定,则搜索所有标签),根元素(可选,如果未指定,则为文档)。



 类似资料:
  • 问题内容: 我需要添加一个表的2个单元格内容并显示它。下面的JavaScript命令在chrome或IE10中可以正常工作。 但不能在IE8或7中使用 。 结果, N 您能否告诉我 IE7或IE8中 的 等效命令 是什么 , 以读取表的单元格内容并将其转换为float然后添加。 问题答案: IE7 /8不支持textContent。后者具有称为innerText的不同属性,该属性返回DOM节点的文

  • 问题内容: 我已经动态创建了一个复选框。我曾经在单击复选框时调用过一个函数,该函数在Google Chrome和Firefox中有效,但 在Internet Explorer 8中不起作用 。这是我的代码: 是我的事件处理程序。 问题答案: 尝试: 更新: 对于IE9之前的InternetExplorer版本,应使用attachEvent方法将指定的侦听器注册到调用它的EventTarget上,对

  • 问题内容: 抱歉,我的无能,但经过数周的熬夜并仅使我的网站在线后,我没有任何余力来调试…我只是无法使用Google在IE6和IE7上实现JSON …我正在使用 据我了解,JSON不是内置在IE6-7上的,而是必须以内联代码动态添加的……您该怎么做? 我已经有了jQuery-我的正确理解是他们的JSON引擎依赖于浏览器本机吗? 然后对使IE6-7失败的无效JSON代码发表一些评论,但我认为它不是IE

  • 问题内容: 我有一个简单的代码: 和这个CSS: 问题是:当我将光标从移到(应该是可见的,因为它是的子级)时,鼠标悬停被禁用了。我正在IE7中对其进行测试,在FF中它可以正常工作。我究竟做错了什么?我还意识到,当我删除标签时,它就不起作用了。有任何想法吗? 问题答案: IE7不允许您将伪类应用于非锚元素,除非您明确指定doctype。只需在页面上添加一个doctype声明,它就可以正常工作。

  • 问题内容: 我已经按照教程在我的应用程序中实现了路由 http://docs.angularjs.org/tutorial/step_07 我无法在IE7中使用我的版本,花了一段时间尝试找出我错过/做错的事情后,我注意到该示例不起作用。 http://angular.github.com/angular- phonecat/step-7/app/ 有人知道如何使它工作吗? 问题答案: 好的,我遇到

  • 问题内容: 我尝试阅读有关如何处理IE中自定义字体的多篇文章,但是它们似乎对我没有用。我尝试将字体转换为,但这似乎也不起作用。我不确定自己在做什么错,所以我将发布我的代码 问题答案: 这在ie8 / 9中有效