更改多选的所选项目

时间:2015-02-02 22:26:06

标签: jquery performance

我有一个大的多选列表,我希望从中获取所有选项,取消选择它们并根据预定义的标准选择新的。

例如

<select>
  <option value='1' selected></option>
  <option value='2'></option>
  <option value='3'></option>
  <option value='4' selected></option>
</select>

我从请求中收到选择必须是2和4的例子。问题是我如何选择2和4并取消选择所有其他的,以便它可以快速有效地工作(考虑到这将有数千行数据)

 $("select").val("2");

我想到了这一点,但就我所知,它只适用于一个值。 任何有关这方面的帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

首先,您需要将您的选择设置为多选:

<select multiple id='select'>
  <option value='1' selected>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
  <option value='4' selected>4</option>
</select>

接下来,您可以选择所有选定的选项,然后取消选择它们:

$('#select').find("option:selected").prop("selected", false);

最后,选择您想要选择的那些,并将它们设置为选中:

$('#select').find("option[value='2'], option[value='4']").prop("selected", true);

段:

&#13;
&#13;
$('#select').find("option:selected").prop("selected", false);
$('#select').find("option[value='2'], option[value='4']").prop("selected", true);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select multiple id='select'>
  <option value='1' selected>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
  <option value='4' selected>4</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您需要找到合适的选项并选择它们:

&#13;
&#13;
$('#foo > option').
  prop('selected', false).             // deselect by default
  filter("[value='2'],[value='4']").   // find our matches
  prop('selected', true);              // select them
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="foo" multiple>
  <option value='1' selected>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
  <option value='4' selected>4</option>
</select>
&#13;
&#13;
&#13;