Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试显示none,仅隐藏div的第一个实例_Javascript - Fatal编程技术网

Javascript 尝试显示none,仅隐藏div的第一个实例

Javascript 尝试显示none,仅隐藏div的第一个实例,javascript,Javascript,我使用两个div动态生成了要输出的内容: <div id="data1">Some info</div> -- <div id="data2">different info</div> 然而,这只是一种工作——它隐藏了它遇到的第一个div,但它并没有隐藏所有具有该ID的div 这意味着我的代码基本上是正确的-IF语句正在工作,display='none'确实隐藏了一些东西,它只是没有隐藏它应该隐藏的所有东西 我试图将其从div id=更改为div

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

<div id="data1">Some info</div> -- <div id="data2">different info</div>
然而,这只是一种工作——它隐藏了它遇到的第一个div,但它并没有隐藏所有具有该ID的div

这意味着我的代码基本上是正确的-IF语句正在工作,display='none'确实隐藏了一些东西,它只是没有隐藏它应该隐藏的所有东西

我试图将其从div id=更改为div class=并使用document.getElementByClassName('data2'),但这似乎根本不起作用-它甚至没有隐藏第一个

我错过了什么/做错了什么?我需要做什么更改才能使其隐藏所有属于“data2”的div


谢谢

使用jQuery并选择按类而不是按ID。请参阅

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

$('#data2').hide()

这假设jQuery位于您的页面上:


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

您的代码看起来不错。您可以看到它的工作原理:

稍后编辑: 使用类而不是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>
一些信息--
不同信息
不同信息
不同信息
var getDivs=document.getElementsByClassName('data2');
for(var i=0;i
您愿意接受使用jQuery的建议吗?这对您来说会容易得多。元素ID应该是唯一的,为多个元素使用一个类。ID在页面中应该是唯一的。给他们所有人一个类并使用
document.getElementsByClassName
..@Vache你应该注意
document.getElementByClassName
只在IE9和upYeah下工作,当只有一个div要隐藏时它工作,但是复制/粘贴第一行大约5-6次,然后再试一次。它只隐藏第一个。@ZeekLTK属性ID应该是唯一的。改为使用类。这在js.do/code站点上有效,但由于某些原因,它在我的站点上不起作用。。。。嗯
<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>