getElementsByClassName()在IE6、IE7、IE8等旧的Internet Explorer中不起作用以下代码:var borderTds = document.getElementsByClassName('leftborder');在InternetExplorer 6、7和8中给出一条错误消息:对象不支持此方法。如何在这些浏览器中按类选择元素?我不喜欢使用JQuery。
3 回答
手掌心
TA贡献1942条经验 获得超3个赞
这,这个解也许会有帮助。这是一种习俗getElementsByClassName
函数在纯javascript中实现,在IE中工作。
从本质上讲,这个脚本所做的就是一个地探索所有可能的选项,并挑选出最好的选项。这些备选办法是:
- 土生土长
功能。document.getElementsByClassName
函数,它允许计算XPath查询。document.evaluate
- 遍历DOM树。
当然,第一个是最好的性能,但后者应该是随处可见的,包括IE6。
页面上也有使用示例,如下所示:
getElementsByClassName("col", "div", document.getElementById("container"));
因此,该函数允许3个参数:类(必需)、标记名称(可选,搜索所有未指定的标记)、根元素(可选,文档(如果没有指定)。
料青山看我应如是
TA贡献1772条经验 获得超8个赞
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;};
添加回答
举报
0/150
提交
取消