Автоматический выбор с помощью jQuery

#jquery

#jquery

Вопрос:

HTML-код:

         <div class="per-input per-businessHour">
                    <select name="closing_time[]" class="closing_time close_time" id="closing_time1">
                      <option value="">Choose</option>
                      @if ($range = range(strtotime('00:00'),strtotime('23:59'),15*60))
                        @foreach ($range as $time)
                          <option value="{{ date('h:i A',$time) }}">{{ date('h:i A',$time) }}</option>
                        @endforeach
                      @endif
                    </select>
                    <span value="1" class="editTime">Edit</span>
                  </div>
        <div class="per-input per-businessHour">
                    <select name="closing_time[]" class="closing_time close_time" id="closing_time2">
                      <option value="">Choose</option>
                      @if ($range = range(strtotime('00:00'),strtotime('23:59'),15*60))
                        @foreach ($range as $time)
                          <option value="{{ date('h:i A',$time) }}">{{ date('h:i A',$time) }}</option>
                        @endforeach
                      @endif
                    </select>
                    <span value="2" class="editTime">Edit</span>
                  </div>
        <div class="per-input per-businessHour">
                    <select name="closing_time[]" class="closing_time close_time" id="closing_time3">
                      <option value="">Choose</option>
                      @if ($range = range(strtotime('00:00'),strtotime('23:59'),15*60))
                        @foreach ($range as $time)
                          <option value="{{ date('h:i A',$time) }}">{{ date('h:i A',$time) }}</option>
                        @endforeach
                      @endif
                    </select>
                    <span value="3" class="editTime">Edit</span>
                  </div>

  

Код jQuery:

 
    $('.closing_time').on('change', function () {
      for (var i = 1; i <= 3; i  ) {
        $('#closing_time' i).find('option[value="' this.value '"]').attr("selected",true);
      }
    })

    $('.editTime').on('click', function () {
      var id = $(this).attr('value');
      $('#closing_time' id).removeClass('close_time');
      $('#closing_time' id).removeClass('closing_time');
      $('#closing_time' id).addClass('editclose_time');
      $('#closing_time' id).removeAttr('id');
      $('#closing_time' id).find('option[value=""]').attr("selected",false);
    })
    $('.editclose_time').on('change', function () {
      $('.editclose_time').find('option[value="' this.value '"]').attr("selected",true);
    })
  

Я пытаюсь вот так:
Если я выберу одно из этих значений all select, то все значения параметра select будут выбраны как одинаковые. При особом условии, если я попытаюсь отредактировать определенный параметр выбора, желая изменить только это значение выбора и выбранный параметр.. не все из этого. Но не удалось этого сделать…Это изменило все значение выбора и выбранную опцию. Если кто-нибудь поможет мне в этом, пожалуйста

Комментарии:

1. Вам не нужен цикл. Просто $(".closing_time").val(this.value)

2. Что такое «особое условие»?

3. нажмите редактировать для определенного тега выбора — «особое условие»

Ответ №1:

Это должно сработать:

 $(".per-businessHour").on("change", ".closing_time", function() {
    $(".closing_time").val(this.value);
});
  

При этом используется делегирование событий, поэтому динамическое изменение классов изменяет, выполняется ли обработчик событий. Когда вы нажимаете на кнопку Редактирования, closing_time класс удаляется, поэтому этот код не будет выполняться при выборе из него. Он также использует этот класс для поиска других выбранных для обновления.