我会使用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
我的HTML是
function showStuff(id) {
if (document.getElementById(id).style.display === "block") {
document.getElementById(id).style.display = "none";
} else {
document.getElementById(id).style.display = "block";
}
}Run Code Online (Sandbox Code Playgroud)
而JavaScript则是
<ul class="side bar tabs">
<li id="tabs1" onclick="showStuff('tabs-1')">City</li>
<li id="tabs2" onclick="showStuff('tabs-2')">Country</li>
<li id="tabs3" onclick="showStuff('tabs-3')">Humanity</li>
</ul>
<div id="tabs-1" style="display : none">
<p>Proin elit m</p>
</div>
<div id="tabs-2" style="display : none">
<p>M massa ut d</p>
</div>
<div id="tabs-3" style="display : none">
<p> sodales.</p>
</div>Run Code Online (Sandbox Code Playgroud)
当我单击特定选项卡时,其他选项卡的内容应该被隐藏但不隐藏.这是我的所有代码.