为了账号安全,请及时绑定邮箱和手机立即绑定

getElementsByClassName()在IE6、IE7、IE8等旧的Internet

getElementsByClassName()在IE6、IE7、IE8等旧的Internet

慕哥9229398 2019-07-22 10:01:49
getElementsByClassName()在IE6、IE7、IE8等旧的Internet Explorer中不起作用以下代码:var borderTds = document.getElementsByClassName('leftborder');在InternetExplorer 6、7和8中给出一条错误消息:对象不支持此方法。如何在这些浏览器中按类选择元素?我不喜欢使用JQuery。
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

这,这个解也许会有帮助。这是一种习俗getElementsByClassName函数在纯javascript中实现,在IE中工作。

从本质上讲,这个脚本所做的就是一个地探索所有可能的选项,并挑选出最好的选项。这些备选办法是:

  1. 土生土长

    document.getElementsByClassName

    功能。
  2. document.evaluate

    函数,它允许计算XPath查询。
  3. 遍历DOM树。

当然,第一个是最好的性能,但后者应该是随处可见的,包括IE6。

页面上也有使用示例,如下所示:

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

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

查看完整回答
反对 回复 2019-07-22
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

IE6、Netscape 6+、Firefox和Opera 7+在页面中复制以下脚本:

document.getElementsByClassName = function(cl) {
  var retnode = [];
  var elem = this.getElementsByTagName('*');
  for (var i = 0; i < elem.length; i++) {
    if((' ' + elem[i].className + ' ').indexOf(' ' + cl + ' ') > -1) retnode.push(elem[i]);
  }
  return retnode;};


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 318 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信