【问题标题】:Compare selected option with last in list in jQuery将所选选项与jQuery中列表中的最后一个进行比较
【发布时间】:2020-06-22 03:26:09
【问题描述】:

在 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() ) {

【问题讨论】:

    标签: jquery jquery-selectors


    【解决方案1】:

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

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

    【讨论】:

    • 啊……是的,谢谢。我应该看到的。 (我将使用第一个解决方案)
    猜你喜欢
    • 1970-01-01
    • 2013-06-30
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多