将所选选项与jQuery中列表中的最后一个进行比较
Posted
技术标签:
【中文标题】将所选选项与jQuery中列表中的最后一个进行比较【英文标题】:Compare selected option with last in list in 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() )
【问题讨论】:
【参考方案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)
如果您有具有相同值的选项,那略有不同,但通常您没有,在这种情况下,它会做同样的事情。
【讨论】:
啊……是的,谢谢。我应该看到的。 (我将使用第一个解决方案)以上是关于将所选选项与jQuery中列表中的最后一个进行比较的主要内容,如果未能解决你的问题,请参考以下文章
jQuery UI 自动完成将所选项目 ID 存储在输入的 value 属性中
使用 Chosen 插件将所选文本选项以外的文本添加到选择中