jQuery循环选择并设置选定的选项

时间:2016-07-25 10:38:25

标签: javascript jquery

我想遍历页面上的所有选择输入,如果所选值不是某个选项,则将该值设置为选中

我有一些选择

<select name="select1">
  <option value="1">One</option>
  <option value="2" selected>Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>

<select name="select2">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>

<select name="select3">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>

我正在循环浏览它们,但如果尚未选中,我无法弄清楚如何将所选属性设置为选项'2'

$('select').each(function() {

    var selected = $(this).find(":selected");

    if (selected.val() != 2) {
        // do some stuff

    }

}

编辑:

我应该详细说明。如果更改了选择输入值,我会附加一个字符串,例如'-updated'到输入值,因为每个输入都将发布到数据库。理想情况下,我只会针对效率发生变化的输入执行此操作

所以我想设置所有尚未选择选项2的选择输入,并且值为“2-updated”

感谢目前为止的所有答案

3 个答案:

答案 0 :(得分:1)

您可以将所需的选项值传递给.val()方法,同时定位选择以选择所需的选项元素:

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

工作代码段

&#13;
&#13;
 $('select').val('2');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select name="select1">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3" selected>Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>

<select name="select2">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>

<select name="select3">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

查找值等于2的所有选项并选择它们:

&#13;
&#13;
$('select').each(function() {
  $(this).find('option[value="2"]').prop('selected', true);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select name="select1">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3" selected>Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>

<select name="select2">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>

<select name="select3">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以浏览此jquery对象的value

   $('select').each(function() {
    var selected = $(this)[0].value;
    console.log(selected)
    if (selected != 2) {
        alert("Not 2")

   }
})

JSFIDDLE