在javascript中按类名隐藏div而不是id

时间:2015-01-22 10:10:03

标签: javascript html

我有这个JavaScript函数,如果选中复选框,则会隐藏div条件。

以下是 JavaScript代码:

function showMeA (div) {

var chboxs = document.getElementsByName("enableA");
var vis = "none";
for(var i=0;i<chboxs.length;i++) { 
    if(chboxs[i].checked){
     vis = "block";
        break;
    }
}
 document.getElementById(div).style.display = vis;
}

问题是函数的工作原理是div的ID。我想根据div的类名使其工作。

我尝试用getElementById替换getElementsByClassName部分但是,它不起作用。有人可以提出我需要在函数中实现的确切更改,以便它基于div的类工作吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以使用getElementsByClassName

,而不是使用getElementById
document.getElementsByClassName('className')

答案 1 :(得分:1)

您可以在没有任何Javascript的情况下执行此操作,只需使用纯CSS和一些聪明的HTML结构。

.switchme {
  display: none;
  }

#switch:checked ~ .switchme {
  display: block;
  }
<input type="checkbox" checked="checked" id="switch" />
<div class="switchme">Switch this div!</div>
<div class="dontswitchme">This div won't be switched.</div>
<ul class="switchme">
  <li>This works without any JS.</li>
  <li>It is based on CSS 3's :checked pseudo selector.</li>
</ul>
<img class="switchme" src="http://placehold.it/300x200&text=SwitchMe" alt="" />