0

所以我有两个下拉菜单,像这样:

<select id="listbox" name="listbox" multiple="multiple">
            <option> value a </option>
            <option> value b </option>
            <option> value c </option>
 </select>


<select id="listbox2" name="listbox2" multiple="multiple">
            <option> value 1 </option>
            <option> value 2 </option>
            <option> value 3 </option>
 </select>

所以当用户选择value a并点击“删除”按钮时,应该删除value a其对应的位置value 1,反之亦然。

我有一个 Javascript 代码,但它不能正常工作,这里是:

function removeOption() {
    var x = new Array();
    x[0] = document.getElementById("listbox");
    x[1] = document.getElementById("listbox2");

    x[0].remove(x[0].selectedIndex);
    x[1].remove(x[1].selectedIndex);
}

大家能帮帮我吗???

4

2 回答 2

2

试试这个

function removeOption() {
    var listbox = document.getElementById('listbox');
    var listbox2 = document.getElementById('listbox2');

    var selectedIndex = 
        (listbox.selectedIndex == -1) ? listbox2.selectedIndex : listbox.selectedIndex;

    var selItem1 = listbox.options[selectedIndex];
    var selItem2 = listbox2.options[selectedIndex];

    selItem1.remove();
    selItem2.remove();
}

JS 小提琴:http: //jsfiddle.net/mDX9Q/

于 2013-02-07T21:11:23.243 回答
0

你可以使用这个功能

function removeselected(d1,d2){
             element=document.getElementById(d1);
             element1=document.getElementById(d2);
             var value= new Array();
             var value1= new Array();
             while(element.selectedIndex != -1)
             {
                var t=element.selectedIndex;
                value.push(element.options[t]);
                value1.push(element1.options[t]);
                element.options[t].selected = false;
             }
             for(var i = 0; i < value.length; i++)
             {
                 element.removeChild(value[i]);
                 element1.removeChild(value1[i]);
             };

   }

打电话用这个

  function remover(){
     removeselected('listbox','listbox2');
     removeselected('listbox2','listbox');
  }

调用时从下拉列表中删除所有选择,并从其他下拉列表中删除类似索引

于 2013-02-07T21:18:55.480 回答