相关疑难解决方法(0)

javascript document.getElementsByClassName与IE的兼容性

检索具有特定类的元素数组的最佳方法是什么?

我会使用document.getElementsByClassName,但IE不支持它.

所以我尝试了Jonathan Snook的解决方案:

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 = document.getElementsByClassName(document.body,'tab');
Run Code Online (Sandbox Code Playgroud)

......但IE仍然说:

Object不支持此属性或方法

任何想法,更好的方法,错误修复?

我宁愿不使用涉及jQuery或其他"笨重的javascript"的任何解决方案.

更新:

我得到了它的工作!

正如@joe提到的那样,函数不是一种方法document.

所以工作代码看起来像这样:

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,'tab'); …
Run Code Online (Sandbox Code Playgroud)

javascript internet-explorer class classname internet-explorer-8

75
推荐指数
5
解决办法
8万
查看次数

带有getElementByClassName的innerHTML不起作用

这个工作:

<td onmouseover="document.getElementById('textbox').innerHTML='Hidden text'" onmouseout="document.getElementById('textbox').innerHTML='Show text'">
    <div id="textbox">Show text</div>
</td>
Run Code Online (Sandbox Code Playgroud)

但是这个没有:

<td onmouseover="document.getElementByClassName('textbox').innerHTML='Hidden text'" onmouseout="document.getElementByClassName('textbox').innerHTML='Show text'">
    <div class="textbox">Show text</div>
</td>
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我需要一个课程不止一次地使用它.

html javascript hover

-1
推荐指数
1
解决办法
1887
查看次数