Сравнить выбранный вариант с последним в списке в jQuery - PullRequest
0 голосов
/ 10 марта 2020

В выпадающем списке HTML я хочу сравнить выбранную опцию с последней опцией в списке. Например:

  $('#YRNext').click(function() {
    if ( $('#year option:selected').val() != $('#year').last().val() ) {
      console.log($('#year').last().val())
      console.log($('#year option:selected').val())
      $('#year option:selected').next('option').prop('selected', 'selected');
      $('#year').trigger('change');
    };
  });

Однако оператор if не работает. Я всегда получаю консольное сообщение с одним и тем же годом. Что я делаю не так?

ПРИМЕЧАНИЕ: я тоже пробовал:

if ( ! $('#year option:selected').is( $('#year').last() ) {

1 Ответ

1 голос
/ 10 марта 2020

$('#year').last() в основном $('#year'), last() принимает последнюю запись в наборе jQuery, а $('#year') имеет только одну запись.

Чтобы получить последний вариант в этом списке, вы можете использовать $('#year option').last():

if ( $('#year option:selected').val() != $('#year option').last().val() ) {
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−^^^^^^^

Другой вариант (как бы) должен использовать selectedIndex на базовом HTMLSelectElement:

var year = $("#year")[0];
if (year.selectedIndex === year.options.length - 1) {

Это немного отличается, если у вас есть опции, которые имеют одинаковое значение, но обычно это не так, и в этом случае это будет делать то же самое.

...