为了账号安全,请及时绑定邮箱和手机立即绑定

在点击函数里写document.write,,怎么不像之前一样在原有的网页内容后面输出呢

<!DOCTYPE HTML>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

        <title>无标题文档</title>

    </head>

    

    <body>

        <form>

          请选择你爱好:<br>

          <input type="checkbox" name="hobby" id="hobby1" value="music">  音乐

          <input type="checkbox" name="hobby" id="hobby2" value="music">  登山

          <input type="checkbox" name="hobby" id="hobby3" value="music">  游泳

          <input type="checkbox" name="hobby" id="hobby4" value="music">  阅读

          <input type="checkbox" name="hobby" id="hobby5" value="music">  打球

          <input type="checkbox" name="hobby" id="hobby6" value="music">  跑步 <br>

          <input type="button" value = "全选" onclick = "checkall()">

          <input type="button" value = "全不选" onclick = "clearall();">

          <p>请输入您要选择爱好的序号,序号为1-6:</p>

          <input id="wb" name="wb" type="text" >

          <input name="ok" type="button" value="确定" onclick = "checkone();">

        </form>

        <script type="text/javascript">

        function checkall(){

            var hobby = document.getElementsByTagName("input");

            for(i=0;i<hobby.length;i++)

            {

                if(hobby[i].type=="checkbox")

                {

                    //document.write(hobby[i].value+"<br>");   //问题:在这里输出内容会把之前的网页都清了,只有一个value的值在这里

                    hobby[i].checked=true;

                }

            }

          // 任务1 

           

        }

        function clearall(){

            var hobby = document.getElementsByName("hobby");

             for(i=0;i<hobby.length;i++)

            {

                if(hobby[i].type=="checkbox")

                {

                    hobby[i].checked=false;

                }

            }

         // 任务2    

            

        }

        

        function checkone(){

            var j=document.getElementById("wb").value;

            var j_id="hobby"+j;

            document.getElementById(j_id).checked=true;

         // 任务3

        

        }

        

        </script>

    </body>

</html>


正在回答

2 回答

我的理解应该是document.getElementByTagName()返回的元素数组应该是由这些元素的地址组成的数组(所以可以直接通过对数组元素修改属性作用到页面元素本身上),而不是把元素重新赋值到一个新数组。

所以第一次document.write()时,因为在页面成功加载成功后执行document.write()会把页面原有内容清空,所以写完第一个music,再循环时由hobby[i]地址返回的元素都是空的了,于是不能输出其它选项的value。

以上是我自己的理解,可能会有不对的地方

0 回复 有任何疑惑可以回复我~

for循环


0 回复 有任何疑惑可以回复我~
#1

yu_1010 提问者

还是没明白,for循环的话,不是应该循环几次,就在屏幕输出几次吗?为什么后面什么都没有,只有一个music值呢?
2019-03-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在点击函数里写document.write,,怎么不像之前一样在原有的网页内容后面输出呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信