将所选选项与 jQuery 列表中的最后一个选项进行比较

Compare selected option with last in list in jQuery

在 HTML 年的 select 下拉列表中,我想将 selected 选项与列表中的最后一个选项进行比较。像这样:

  $('#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() ) {

$('#year').last() 基本上是 $('#year')last() 取 jQuery 集合中的最后一个条目,而 $('#year') 只有一个条目。

要获得该列表中的最后一个选项,您可以使用 $('#year option').last():

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

另一种选择(可以说)是在基础 HTMLSelectElement:

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

如果您有具有相同值的选项,那略有不同,但通常您没有,在这种情况下它会做同样的事情。