JavaScript:动态生成下拉列表框

范例:动态生成下拉菜单 TestDemo.htm

<!DOCTYPE html>
<html>
<head>
    <title>下拉框</title>
    <meta charset="utf-8">
    <script type="text/javascript">
        var cityValue=new Array("001","002","003");
        var cityLabel=new Array("北京","广州","重庆");
       window.onload=function(){
          document.getElementById("loadBut");
          addEventListener("click",handleOption,false);
       }
       function handleOption(){
           //处理下拉菜单中的所有选项内容
           var cityElement=document.getElementById("city");
           //清空下拉列表项,设置保留的个数
         cityElement.length=1;
           for (var i = 0; i < cityValue.length; i++) {
                var optionElement=document.createElement("option");//创建option元素
                optionElement.setAttribute("value",cityValue[i]);
                optionElement.appendChild(document.createTextNode(cityLabel[i]));
                cityElement.appendChild(optionElement);
       }
   }
    </script>
</head>
<body>
  <div id="myDiv">
       请选择你所在的城市:<select id="city">
                              <option value="0">
                                  ======选择城市=======
                              </option>
                           </select>
 <button id="loadBut">读取城市信息</button>                          
  </div>
</body>
</html>

范例:实现选项变更 TestDemoA.htm

<!DOCTYPE html>
<html>
<head>
    <title>下拉框</title>
    <meta charset="utf-8">
    <script type="text/javascript">
        var cityValue=new Array("001","002","003");
        var cityLabel=new Array("北京","广州","重庆");
       window.onload=function(){
          document.getElementById("ch").
          addEventListener("dblclick",changeOption,false);
          document.getElementById("inst").
          addEventListener("dblclick",changeOption2,false);

       }
       function changeOption2(){
         //如果要想取得当前的操作选项,使用this描述
         var value=this.value;
         var label;//保存标签结果
         //要找到发出选项的元素内容
        var optionSelected=getElement("inst",value);
        label=optionSelected.firstChild.nodeValue;
           //如果可以取出标签了,那么表示可以向另外一个下拉菜单设置选项内容了
           append("ch",value,label);
           deleteElement("inst",optionSelected);
       }
       function changeOption(){
         //如果要想取得当前的操作选项,使用this描述
         var value=this.value;
         var label;//保存标签结果
         //要找到发出选项的元素内容
        var optionSelected=getElement("ch",value);
        label=optionSelected.firstChild.nodeValue;
           //如果可以取出标签了,那么表示可以向另外一个下拉菜单设置选项内容了
           append("inst",value,label);
           deleteElement("ch",optionSelected);
       }
       function deleteElement(eleName,option){
//删除掉选项的内容
         document.getElementById(eleName).removeChild(option);
       }
       //根据下拉列表取出指定的option对象
       function getElement(eleName,value){
           var optionEle=document.getElementById(eleName).getElementsByTagName("option");
         //依次比较每一个option元素的内容目的是取出标签内容
         for (var i = 0; i < optionEle.length; i++)
          {
          if (optionEle[i].getAttribute("value")==value) {//表示当前选中的内容
             return optionEle[i];

          }
         }
       }
       function append(eleName,value,label){
        var optionElement=document.createElement("option");
        optionElement.setAttribute("value",value);
        optionElement.appendChild(document.createTextNode(label));
        document.getElementById(eleName).appendChild(optionElement);
       }
    </script>
</head>
<body>
  <div id="firstDiv">
       你的兴趣:<select id="ch" multiple size="10">
                       <option value="100">唱歌</option>
                  <option value="101">跳舞</option>
                  <option value="102">打架</option>
                  <option value="103">玩游戏</option>
                           </select>                
  </div>
  <div id="secondDiv">
       选择好的兴趣:<select id="inst" mutiple size="10"></select>
  </div>
</body>
</html>

 

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值