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' к входному значению, поскольку каждый вход будет отправляться в базу данных. В идеале я бы делал это только для входов, которые изменились для эффективности

Поэтому я хотел бы установить все входы select, для которых еще не выбран вариант 2 и значение «2-updated»

Спасибо за все ответы до сих пор

 Pranav C Balan25 июл. 2016 г., 12:40
$('select').val('2');
 Pranav C Balan25 июл. 2016 г., 12:41
или вы можете что-то хотеть$('select:not(:has(:selected))').val('2');
 Rory McCrossan25 июл. 2016 г., 12:39
Неважно, если он уже выбран - просто установите его снова, и jQuery справится с этим за вас. Если вы устанавливаете их все2вам даже не нужна петля, просто$('select').val('2')
 jdoe25 июл. 2016 г., 13:33
Я должен уточнить. Если выбранное значение ввода изменяется, я добавляю строку, например, '-updated' к входному значению, поскольку каждый вход будет отправляться в базу данных. В идеале я бы делал это только для входов, которые изменились для повышения эффективности. Поэтому я бы хотел, чтобы все входы выбора, для которых еще не выбран вариант 2, имели значение «2-updated». Спасибо за все ответы до сих пор

Ответы на вопрос(3)

Вы можете исследоватьvalue ключ этого объекта jquery

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

   }
})

JSFIDDLE

 Rajesh25 июл. 2016 г., 12:49
$(this)[0].value; можно заменить наthis.value

Вы можете передать желаемое значение опции.val() Метод при таргетинге выберите, чтобы выбрать необходимый элемент параметра:

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

Рабочий фрагмент:

 $('select').val('2');
<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>

 Milind Anantwar25 июл. 2016 г., 16:14
@jdoe: вот такjsfiddle.net/2d9ewvck , осмотрите элемент в консоли, чтобы увидеть измененное значение.
 Milind Anantwar25 июл. 2016 г., 15:36
@jdoe: не понял тебя. Вы можете уточнить подробнее ..
 jdoe25 июл. 2016 г., 16:03
Как я могу сделать это для выбранных входов, которые еще не выбраны в качестве значения = '2'?
 jdoe25 июл. 2016 г., 14:29
Когда я изменяю входные данные выбора, я добавляю к значению строку '-updated', есть ли способ установить все выборки, которые еще не имеют значение = 2, на значение 2 и добавить к ним эту строку?function set_updated() { var inputname = $(this).find(":selected")[0].value; if (!inputname.match(/updated/i)) { $(this).find(":selected").val(inputname + "-updated"); } }
 jdoe25 июл. 2016 г., 16:03
Не волнуйтесь. В форме действия этих выбранных входных данных я хотел бы выполнить цикл и выполнить некоторые операции (вызов веб-службы / базы данных), которые я выполняю в отдельном файле PHP, однако я хотел бы делать это только там, где входные данные были обновлено. Поэтому, когда выбор был изменен, я добавил строку '-updated' к значению опции, как это -<select name="select3"> <option value="1">One</option> <option value="2-updated">Two</option> <option value="3">Three</option> <option value="4">Four</option> <option value="5">Five</option> </select>

$('select').each(function() {
  $(this).find('option[value="2"]').prop('selected', true);
});
<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>

 Oops14 авг. 2019 г., 09:08
Прошли годы после того, как вы ответили на это. Но этот ответ дал подсказку моей проблеме. Спасибо :)

Ваш ответ на вопрос