js 控制选择框

通过javascript控制选择框,实现添加/删除 选项,获得选中项信息,以及两个选择框之间的选项移动

html

<form>
    <select multiple>
         <option value="wudi zz">wudi</option>
         <option>banyu</option>
         <option value="yichen 66">yichen</option>
         <option value="">闪亮</option>
     </select>
     <select multiple>
         <option value="猴子">monkey</option>
         <option value="大象">elephant</option>
         <option value="狗">dog</option>
     </select>
     <button id="getselect" type="button">getselectItem</button>
     <button id="add" type="button">add</button>
     <button id='remove' type="button" >remove</button>
     <button id="move" type="button">move</button>
 </form>

获得选中的选项

document.getElementById("getselect").addEventListener("click",()=>{
            var select =document.forms[0][0];
            for(var i=0;i<select.options.length;i++){
                if(select.options[i].selected)
                    console.log(select.options[i].text)
            }
        })

这里document.forms[0][0],是指页面中的第一个表单(form),表单中的第一个第一个字段,也可以使用document.forms[0].elements[0]。之后则遍历该对象(选择框)中的每一个选项(options),如果已选中,则打印到控制台,也可以把它存到一个数组中。

新增选项

document.getElementById("add").addEventListener("click",()=>{
            // dom生成并添加
            var newoption=document.createElement("option");
            newoption.appendChild(document.createTextNode("dom created"))
            newoption.setAttribute("value","dom create value")
            document.forms[0][0].appendChild(newoption) 

            // var option=new Option("option text","option value");// Option构造函数生成
            // document.forms[0][0].add(option,undefined);// undefined  指定添加到最后面
            // document.forms[0][0].add(option,document.forms[0][0].options[2])// 指定元素前面
        })

这里有两种方法,一种是通过dom生成,然后通过appendChild()添加。还有一种方法是通过Option构造函数生成,以add()方法添加。add()方法的第二个参数是确定位置,在该元素之前,如果想要插入到最后,将它设为underfined即可。

删除

document.getElementById("remove").addEventListener("click",function(){
            // 三种方法可以实现
            var select=document.forms[0][0];
            // select.removeChild(select.options[0]);
            // select.remove(1);
            select.options[2]=null;
        })

有三种方法进行删除:

  • 通过dom的removeChild()方法删除目标
  • 通过remove()方法 参数为在选择框中的位置,从0开始
  • 通过将对应位置的options置为null,这是浏览器遗留机制。

移动

document.getElementById("move").addEventListener("click",function(){
            var target=document.forms[0][1];
            var select =document.forms[0][0];
            var item=[];
            for(var i=0;i<select.options.length;i++){
                if(select.options[i].selected)
                    item.push(select.options[i]);
            }
            // 实现选中的移动
            for(var i=0;i<item.length;i++)
                target.appendChild(item[i])
            // 通过insertbefore调整位置
            var end=target.options[target.options.length-1]
            target.insertBefore(end,target.options[0])
        })

将第一个选择框中选中的选项移动到第二个选择框中,首先要获得第一个选择框中选择的那些项,存入到item中,然后依次遍历,将这些项追加到第二个选择框中,如果想要调整位置,可以通过insertBefore()方法实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值