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

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

以下代码:

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

在InternetExplorer 6、7和8中给出一条错误消息:

对象不支持此方法。

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

我不喜欢使用JQuery。


慕哥9229398
浏览 319回答 3
3回答

手掌心

这,这个解也许会有帮助。这是一种习俗getElementsByClassName函数在纯javascript中实现,在IE中工作。从本质上讲,这个脚本所做的就是一个地探索所有可能的选项,并挑选出最好的选项。这些备选办法是:土生土长document.getElementsByClassName功能。document.evaluate函数,它允许计算XPath查询。遍历DOM树。当然,第一个是最好的性能,但后者应该是随处可见的,包括IE6。页面上也有使用示例,如下所示:getElementsByClassName("col", "div", document.getElementById("container"));因此,该函数允许3个参数:类(必需)、标记名称(可选,搜索所有未指定的标记)、根元素(可选,文档(如果没有指定)。

料青山看我应如是

IE6、Netscape 6+、Firefox和Opera 7+在页面中复制以下脚本:document.getElementsByClassName&nbsp;=&nbsp;function(cl)&nbsp;{ &nbsp;&nbsp;var&nbsp;retnode&nbsp;=&nbsp;[]; &nbsp;&nbsp;var&nbsp;elem&nbsp;=&nbsp;this.getElementsByTagName('*'); &nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;elem.length;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if(('&nbsp;'&nbsp;+&nbsp;elem[i].className&nbsp;+&nbsp;'&nbsp;').indexOf('&nbsp;'&nbsp;+&nbsp;cl&nbsp;+&nbsp;'&nbsp;')&nbsp;>&nbsp;-1)&nbsp;retnode.push(elem[i]); &nbsp;&nbsp;} &nbsp;&nbsp;return&nbsp;retnode;};
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript