编程语言
首页 > 编程语言> > javascript-更改className ie8

javascript-更改className ie8

作者:互联网

使用Javascript更改div元素的类时遇到一些麻烦.我当前使用的方法(请参见下面的代码)在Chrome和Firefox中有效,但在IE8上却无效(我尚未测试IE9,但假定它已经可以工作,或者一旦ie8就可以工作).

奇怪的是,在ie8中,当我更改输入元素的类时,它可以工作.但更改div的类不会执行任何操作(完全不更改类)

JavaScript

function switchTab(tab, button) {
    var divs = document.getElementsByName("tab-content");
    var d;
    for (counter=0; counter<divs.length; counter++) {
      d = divs[counter];
      if (d.id == tab)
        d.className = "members";
      else
        d.className = "members-hidden";
    }
    var buttons = document.getElementsByName("button");
    var bu;
    for (counter=0; counter<buttons.length; counter++) {
      bu = buttons[counter];
      if (bu.id == button)
        bu.className = "tab-active";
      else
        bu.className = "tab";
    }
    return false;

}

相关HTML片段

<div id="nav">
<ul class="membernav">
   <li><input id="ob" type="button" class="tab-active" name="button" onclick="return switchTab('officers', 'ob')" value="Officers"></li>
   <li><input id="pb" type="button" class="tab" name="button" onclick="return switchTab('partners', 'pb')" value="Partners"></li>
   <li><input id="mb" type="button" class="tab" name="button" onclick="return switchTab('managers', 'mb')" value="Managers"></li>
   <li><input id="ab" type="button" class="tab" name="button" onclick="return switchTab('associates', 'ab')" value="Associates"></li>
</ul>
</div>

并进一步介绍HTML

<div id="tab-contents">
<div class="members" name="tab-content" id="officers">
   <!-- irrelevant content removed to save space -->
</div>

<div class="members-hidden" name="tab-content" id="partners">
  <!-- irrelevant content removed to save space -->
</div>

<div class="members-hidden" name="tab-content" id="managers">
   <!-- irrelevant content removed to save space -->
</div>

<div class="members-hidden" name="tab-content" id="associates">
   <!-- irrelevant content removed to save space -->
</div>
</div>

按钮上的类已成功切换到选项卡和从选项卡激活的状态.

但是div不会从成员更改为成员隐藏.

我犯了一些愚蠢的错误吗?因为我以相同的方式进行更改,所以为什么一个工作而另一个坏了?

解决方法:

此帖回答了您的问题:getElementsByName in IE7

总结一下:IE不支持通过名称获取默认情况下不支持name属性的元素.这就是为什么您的标准表单输入字段可以工作,但div不能工作的原因.

标签:internet-explorer,css,html,javascript,internet-explorer-8
来源: https://codeday.me/bug/20191201/2077724.html