Javascript 尝试显示none,仅隐藏div的第一个实例
我使用两个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 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>