首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特殊用途getElementsByClassName用聚脂填料

特殊用途getElementsByClassName用聚脂填料
EN

Stack Overflow用户
提问于 2013-09-22 14:03:28
回答 1查看 2.4K关注 0票数 4

如何使this.getElementsByClassName('class')[0]为Internet 6-8工作?有什么填充材料可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-22 14:09:28

为了记录在案,旧浏览器仍然存在,因为人们一直在努力支持它们。

用于document.getElementsByClassName的填充

话虽如此,一个简短的google搜索可以让你找到这个链接:https://gist.github.com/eikes/2299607

IE6/7的填充方式如下:

代码语言:javascript
复制
if (d.evaluate) { // IE6, IE7
  pattern = ".//*[contains(concat(' ', @class, ' '), ' " + search + " ')]";
  elements = d.evaluate(pattern, d, null, 0, null);
  while ((i = elements.iterateNext())) {
    results.push(i);
  }
}

基于document.evaluate方法

https://developer.mozilla.org/en-US/docs/Web/API/document.evaluate

element.getElementsByClassName编辑:填充

您似乎希望在HTML元素上而不是在文档上调用getElementsByClassName方法。不幸的是,我不认为您可以在IE6和7(甚至8)上填充它,正如这个答案所暗示的:How to add my own methods to HTMLElement object?

您仍然可以使用document.evaluate来附加您想要的功能(提示:第二个参数是上下文节点;它应该是您的元素),但是您需要将调用代码更改为如下所示:

代码语言:javascript
复制
<div onclick="myPolyfill('class', this)[0].innerHTML = 'works'">
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18944659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档