初学JS,请教循环写法

现在这个js只定义了2个div点击显示隐藏,现在有2个可以这样写,但是如果有100个div的话,语句就会写很长了。要怎么简洁定义啊,总不能写100句js语句吧。

 <input type="button" value="显示隐藏" onClick="showHide()" />
  <input type="button" value="显示隐藏" onClick="showHide2()" />
<div id="div1"></div>
<div id="div2"></div>
<script>
function showHide()
{
    var oDiv=document.getElementById('div1');

    if(oDiv.style.display=='block')
    {
        oDiv.style.display='none';
    }
    else
    {
        oDiv.style.display='block';
    }
}
function showHide2()
{
    var oDiv=document.getElementById('div2');

    if(oDiv.style.display=='block')
    {
        oDiv.style.display='none';
    }
    else
    {
        oDiv.style.display='block';
    }
}
</script>
<style>
#div1 {width:100px; height:200px; background:#CCC; display:none;}
#div2 {width:100px; height:200px; background:#CCC; display:none;}
</style>
 function showHideN(N)
{
    var oDiv=document.getElementById('div'+N);

    if(oDiv.style.display=='block')
    {
        oDiv.style.display='none';
    }
    else
    {
        oDiv.style.display='block';
    }
}
 <input type="button" value="显示隐藏" onClick="showHideN(2)" />

要点都写了,还给扣分就没意思了吧?应你的要求写完整了。

  <input type="button" value="显示隐藏" onClick="showHideN(1)" />
  <input type="button" value="显示隐藏" onClick="showHideN(2)" />
<div id="div1"></div>
<div id="div2"></div>
<script>
function showHideN(N)
{
    var oDiv=document.getElementById('div'+N);

    if(oDiv.style.display=='block')
    {
        oDiv.style.display='none';
    }
    else
    {
        oDiv.style.display='block';
    }
}
</script>
<style>
#div1 {width:100px; height:200px; background:#CCC; display:none;}
#div2 {width:100px; height:200px; background:#CCC; display:none;}
</style>

可以看出来你的showHide方法和showHide2方法,里面的内容可以说一模一样,此时可以提取为一个公共的方法可以实现,唯一的区别就是:div的id不同,这样的话,其实也不需要用到循环语句,只需要showHide这个方法,往里面传进来一个参数是该div的id。

方法修改为:

 function showHide(id)
{
    var oDiv=document.getElementById(id);

    if(oDiv.style.display=='block')
    {
        oDiv.style.display='none';
    }
    else
    {
        oDiv.style.display='block';
    }
}

html调用的方法:

 <div id="div1" onclick="function('div1')"></div>
<div id="div2" onclick="function('div2')"></div>

这样这个问题就可以解决了。

说一句题外话:看你的代码应该是刚刚入坑的小白,里面的style样式还是根据id来写的,如果真的有100个div难道你还要写100个一模一样的样式吗?所以这个时候就需要用到class类了,自己去学习一下,希望能帮到你,望采纳

实现方式很多,以下是我的实现方式,你可以直接新建文件,粘贴进入,然后预览看下效果。个人见解,还望采纳。
具体代码如下:

 <html>
<head></head>
<body>
    <input type="button" onclick="show();" value="显示"/>
    <input type="button" onclick="hide();" value="隐藏"/>
    <script>
        function show(){
            for(var i = 0; i < 100; i++){
                var div = document.createElement("div");
                div.innerHTML = i+1;
                div.style.backgroundColor="green";
                div.style.border="solid black 1px";
                div.style.display="";
                div.id = 'div' + i;
                document.body.appendChild(div);
            }
        }
        function hide(){
            for(var i = 0; i < 100; i ++){
                var div = document.getElementById('div'+i);
                document.body.removeChild(div);
            }
        }
    </script>
</body>
</html>