如何使用javascript用一个按钮交换两个DropDownList

如何使用javascript用一个按钮交换两个DropDownList,javascript,html,Javascript,Html,如何更改两个DropDownList的值。什么意思是像普通DDL一样,用按钮或箭头图标交换其他下拉列表的值。HTML: <label>Browser Select 1</label> <select class="browser-default" id="drop1"> <option value="" disabled selected>Choose your option</option> <option

如何更改两个DropDownList的值。什么意思是像普通DDL一样,用按钮或箭头图标交换其他下拉列表的值。

HTML:

<label>Browser Select 1</label>
  <select class="browser-default" id="drop1">
    <option value="" disabled selected>Choose your option</option>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
  </select>

<label>Browser Select 2</label>
  <select class="browser-default" id="drop2">
    <option value="" disabled selected>Choose your option</option>
    <option value="1">Option 4</option>
    <option value="2">Option 5</option>
    <option value="3">Option 6</option>
  </select>

<button id="switch">switch</button>
纯javascript,这要归功于:


您可以按如下方式执行此操作:

HTML

<table>
    <tr>
        <td>
            <select id="mySelect1" size="5" multiple style="width:200px">
                <option value="opt1">Option 1</option>
                <option value="opt2">Option 2</option>
                <option value="opt3">Option 3</option>
            </select>
        </td>
        <td valign="center">
            <button id="toRight">►</button><br/>
            <button id="toLeft">◄</button>
        </td>
        <td>
            <select id="mySelect2" size="5" multiple style="width:200px">
                <option value="opt4">Option 4</option>
                <option value="opt5">Option 5</option>
                <option value="opt6">Option 6</option>
            </select>
        </td>
    </tr>
</table>

下面是一个使用上述代码的示例。这允许多选并双击项目或按钮进行移动。

到目前为止,您尝试过做什么?在下拉列表中交换值与在数组中交换值的概念相同。例如,单位转换器将cm转换为m,但我想按下按钮并显示m到cm,因此将dropdownlist与dropdownlist 2交换并显示转换现在我感到困惑,是否要交换文本中单词下拉列表中的
?您将需要给出一个代码示例。是的,我想将DDL 1和DDL 2中的值转换为OP不使用jQuery。@ SpencerWieczorek现在可以考虑它。如果在问题中没有包含<代码> jQuery < /代码>标签,我将避免给出使用jQuery的解决方案。或者提供一个包含纯JS的解决方案。是的,那么如何与纯JS交换呢javascript@HaroonIqbal&Spencer:我在纯JS中尝试过,但我真的不知道如何在没有jQuery的情况下实现
find
document.getElementById("switch").onclick = function() {
    var drop1 = document.getElementById("drop1");
    var drop2 = document.getElementById("drop2");
    var tempHTML = drop1.innerHTML;

    drop1.innerHTML = drop2.innerHTML;
    drop2.innerHTML = tempHTML;

}
<table>
    <tr>
        <td>
            <select id="mySelect1" size="5" multiple style="width:200px">
                <option value="opt1">Option 1</option>
                <option value="opt2">Option 2</option>
                <option value="opt3">Option 3</option>
            </select>
        </td>
        <td valign="center">
            <button id="toRight">►</button><br/>
            <button id="toLeft">◄</button>
        </td>
        <td>
            <select id="mySelect2" size="5" multiple style="width:200px">
                <option value="opt4">Option 4</option>
                <option value="opt5">Option 5</option>
                <option value="opt6">Option 6</option>
            </select>
        </td>
    </tr>
</table>
function moveOptionsTo(index) {
    var target = document.getElementById('mySelect' + index);
    var options = document.getElementById('mySelect' + (3-index)).options;
    for (var i = 0; i < options.length; i++) {
        if (options[i].selected) {
            target.appendChild(options[i]);
            i = i - 1;
        }
    }
}
document.getElementById('toRight').onclick = function() {
    moveOptionsTo(2);
};
document.getElementById('toLeft').onclick = function() {
    moveOptionsTo(1);
};
document.getElementById('mySelect1').ondblclick = function() {
    moveOptionsTo(2);
};
document.getElementById('mySelect2').ondblclick = function() {
    moveOptionsTo(1);
};
function moveOptionsTo(index) {
    $('#mySelect' + (3-index) + ' option:selected').appendTo('#mySelect' + index);
}
$('#toRight').click(function() {
    moveOptionsTo(2);
});
$('#toLeft').click(function() {
    moveOptionsTo(1);
});
$('#mySelect1').dblclick(function() {
    moveOptionsTo(2);
});
$('#mySelect2').dblclick(function() {
    moveOptionsTo(1);
});