我有动态生成的内容,我使用两个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;?
谢谢!
答案 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。