试图显示none,只隐藏div的第一个实例

时间:2014-08-12 13:56:12

标签: javascript

我有动态生成的内容,我使用两个div输出:

<div id="data1">Some info</div> -- <div id="data2">different info</div>

我想只展示&#34; data2&#34;在某些情况下,所以我尝试使用JavaScript来隐藏它,如果不需要它。基本上,我的代码是:

var getDivs = document.getElementById('data2');
IF STATEMENT {
   getDivs.style.display='none'; }

然而,这只是一种工作 - 它隐藏了它遇到的第一个div,但它没有隐藏所有带有该ID的div。

这意味着我的代码基本上是正确的 - IF STATEMENT正常工作,display =&#39; none&#39;是否隐藏了一些东西,它只是没有隐藏它应该隐藏的一切......

我试图将它从div id =更改为div class =而是使用document.getElementByClassName(&#39; data2&#39;)但这似乎并没有起作用 - 它没有&#39 ;甚至隐藏第一个。

我错过了什么/做错了什么?我需要更改什么来隐藏所有的&#34; data2&#34;?

谢谢!

3 个答案:

答案 0 :(得分:1)

您的代码似乎很好。您可以看到它有效:http://js.do/code/zeek

后来编辑: 使用class而不是id:

<div id="data1">Some info</div> -- 
<div class="data2">different info</div>
<div class="data2">different info</div>
<div class="data2">different info</div>


<script type="text/javascript">
 var getDivs = document.getElementsByClassName('data2');
 for(var i= 0; i< getDivs.length; i++){
    var div = getDivs[i];
    div.style.display='none';
 }
</script>

答案 1 :(得分:0)

使用jQuery并按类而不是ID进行选择。请参阅http://api.jquery.com/class-selector

jQuery不仅简单易读,而且还不会写getElementByClassName而不是getElementsByClassName

答案 2 :(得分:0)

$('#data2').hide();

这假设jQuery在您的页面上:http://api.jquery.com/

注意:如果这是动态的,并且有多个ID为data2的元素,则会遇到问题。相反,如果可以帮助,可以使用类来选择相关的div。