【问题标题】:Javascript Show/Hide not working in IE8Javascript 显示/隐藏在 IE8 中不起作用
【发布时间】:2012-11-26 14:54:49
【问题描述】:

我有这段代码可以在 FF、Chrome、Safari 甚至 IE9 中运行。自然,它在 IE8 中不起作用。这是使用 Javascript 在两个 div 上显示/隐藏。我对 JS 不是很精通,所以任何帮助都将不胜感激。

Javascript 函数:

function showonlyone(thechosenone) {
  var subscriberinfo = document.getElementsByTagName("div");
  for(var x=0; x<subscriberinfo.length; x++) {
    name = subscriberinfo[x].getAttribute("class");
    if (name == 'subscriberinfo') {
      if (subscriberinfo[x].id == thechosenone) {
        subscriberinfo[x].style.display = 'block';
      } else {
        subscriberinfo[x].style.display = 'none';
      }
    }
  }
}

HTML 代码:

<ul class="options">
  <div class="subscriber-options">
    <a href="javascript:showonlyone('subscriberinfo1');" >Account</a>
  </div>
  <div class="subscriber-options">
    <a href="javascript:showonlyone('subscriberinfo2');" >Subscriber Options</a>
  </div>
</ul>
<!-- options -->
<div class="subscriberinfo" id="subscriberinfo1">Div #1</div>
<!-- subscriberinfo1 -->
<div class="subscriberinfo" id="subscriberinfo2" style="display: none;">Div #2</div>

【问题讨论】:

  • “XYZ 功能在 IE8 中不起作用” - 您还有什么期望?
  • 根据a forum post,您也许可以使用 CSS 类来完成此操作。
  • 不推荐使用javascript:方案链接。
  • @Rocketpig 你能在IE8不工作时检查它是否处于怪癖模式。
  • 对不起,我应该详细说明。我在兼容模式下运行 IE9。我在这台机器上没有 IE8 的本机副本。

标签: javascript show-hide


【解决方案1】:

你试过className而不是getAttribute("class")吗?

function showonlyone(thechosenone) {
  var subscriberinfo = document.getElementsByTagName("div");

  for(var x=0; x<subscriberinfo.length; x++) {
    name = subscriberinfo[x].className;  // <-- Here is the change
    if (name == 'subscriberinfo') {
      subscriberinfo[x].style.display = 
          (subscriberinfo[x].id == thechosenone) ? 'block' : 'none';
    }
  }
}

【讨论】:

  • 你的牙套错位了,我很烦。
  • 执行subscriberinfo[x].className || subscriberinfo[x].getAttribute("class") 以使用任何可用的属性(即,使用className,如果className 不可用,则回退到getAttribute("class")
  • 你知道有没有className不存在但getAttribute("class")存在的情况?在这个site 上,className 似乎工作得更广泛!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 2014-07-02
  • 2013-03-01
  • 2017-09-22
相关资源
最近更新 更多