在javascript中的两个选择框之间交换所有值[关闭]

Posted

技术标签:

【中文标题】在javascript中的两个选择框之间交换所有值[关闭]【英文标题】:swapping all values between two select boxes in javascript [closed] 【发布时间】:2021-03-21 00:37:41 【问题描述】:

我有两个选择 boxex,它们的内容应该由 change 事件交换 所以select_default1 得到select_default2 的内容,反之亦然

<select name="select_default1" class="select_default1">
                    <option value="">choose Columns</option>
      <option value=" 1"> 1</option>
       <option value=" 2"> 2</option>
       <option value=" 3"> 3</option>
       <option value=" 4"> 4</option>
</select>


<select name="select_default1" class="select_default1">
                    <option value="">choose Columns</option>
      <option value=" a"> a</option>
       <option value=" b"> b</option>
       <option value=" c"> c</option>
</select>

我的方法是将每个选择框的值保存到一个数组中

   let default1_array = [];
        $("#id option").each(function()
          default1_array.push( $(this).val());

        );


然后用数组中保存的值更改每个框的值。

如果有办法以更少的步骤完成此任务,我正在徘徊

【问题讨论】:

您当然不仅需要保存值,还需要保存内部文本(如果它们可能不同) 你也没有编写任何方法来保存'select'的'selected'选项 交换应该在什么情况下发生? 所以就个人而言,我建议您至少考虑一下是否希望在交换中保留“已选择”选项,并且您可以通过直接复制来使用 jquery 使整个工作变得相当容易孩子们在 “清洁工”是一个非常主观的描述。请edit您的问题客观地描述“更清洁”对您意味着什么。 【参考方案1】:

这是一个超级简单的例子,它确实保留了选定的元素。我从每个元素中复制子元素,然后清空每个元素并复制其他元素的子元素。然后我复制该值。

$('button').click(function() 
  const oneChildren = $('#1').children();
  const twoChildren = $('#2').children();
  
  const oneValue = $('#1').val();
  const twoValue = $('#2').val();
  
  $('#1').empty().append(twoChildren);
  $('#2').empty().append(oneChildren);
  
  $('#1').val(twoValue);
  $('#2').val(oneValue);
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="" id="1">
  <option value="a">a</option>
  <option value="b">b</option>
</select>

<select name="" id="2">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
<br/>
<br/>
<button>change</button>

【讨论】:

以上是关于在javascript中的两个选择框之间交换所有值[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 交换选择字段中的所有选项

JavaScript 将所有元素包装在两个选择器之间

在Python中的数据框中的每一行的两个子字符串之间选择字符串

JavaScript --- 如何制定规则以确保用户输入的值介于两个特定数字之间

合并一个值在另外两个之间的熊猫数据框[重复]

JavaScript两个变量的值交换的多种方式