这似乎不适用于ie7和ie8,有没有简单的解决方法?
var collapsables = document.getElementsByClassName('collapsable');
function unhide(divID) {
// Hide previous
for (var i = 0; i < collapsables.length; i++) {
collapsables[i].className = 'collapsable hidden';
}
// Show new
var item = document.getElementById(divID);
if (item) {
item.className = 'collapsable';
}
}发布于 2014-01-27 23:39:55
尝试使用: var .collapsable= document.querySelector('.collapsable');
IE8支持的querySelector
但是如果你需要IE7,试着使用肮脏的黑客:
if(document.getElementsByClassName == undefined) {
document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) {
retnode.push(elem[i]);
}
}
return retnode;
}
}; 你应该明白--这是非常慢的操作。此函数迭代所有DOM元素
发布于 2014-01-27 23:43:46
我敢打赌,它很快就会被关闭,因为它很快就会被复制,但Web_Designer在here上发布了一个很好的工作解决方案。
针对IE9之前的IE版本的Web_Designers解决方案:
function getElementsByClassName(node, classname) {
var a = [];
var re = new RegExp('(^| )'+classname+'( |$)');
var els = node.getElementsByTagName("*");
for(var i=0,j=els.length; i<j; i++)
if(re.test(els[i].className))a.push(els[i]);
return a;
}用法:
var tabs = getElementsByClassName(document.body,'collapsable');https://stackoverflow.com/questions/21384833
复制相似问题