angry ant 2017-05-02 14:08 采纳率: 33.3%
浏览 1105
已采纳

javaScript中获取获取标签的问题

目的是对下拉选框中的所有标签进行操作,定义下拉选框的代码为

 <select id="left" multiple="true" style="width:100px" size="10">
                        <option>環</option>
                        <option>芈</option>
                        <option>琅</option>
                        <option>琊</option>
                        <option>爨</option>
                        <option>甄</option>
                        <option>槑</option>
                        <option>夔</option>
                    </select>
 该文件中所有的<option>标签都在上面的<select>标签中,
 对<option>进行抓取并操作的代码是


document.getElementById("toRight2").onclick=function()
            {
                arr = document.getElementById("left").options;
                for(i=0;i<arr.length;i++)
                {
                    if(arr[i].selected)
                    {
                        document.getElementById("right").appendChild(arr[i]);
                        i--;
                        //注意:将元素添加至右边后,左边的option元素个数就减少1,所移动元素之后的标签索引减1,
                        //为了仍然能够遍历所有的元素,应手动将当前索引值减一。
                    }
                }
            }

                arr = document.getElementsByTagName("option");
                运行时触发事件,则浏览器会无响应进入卡死状态,请问这是什么原因啊?这两种获取方式有什么不同吗?通过打印这两种方式获取的数组,我发现方式一得到的数组类型是[object HTMLOption Collection ]而方式二得到的数组类型是[object HTML Collection]
 求大神指点
  • 写回答

3条回答

  • Go 旅城通票 2017-05-03 02:07
    关注

    document.getElementById("left").options你这样是每次调用left的options,你添加到right后就少一个

    document.getElementsByTagName("option")是所有option集合,你再怎么添加这个集合一个都不会少,直接死循环了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?