我有一个下拉列表,我已经绑定了一个更改事件处理程序.每当用户选择新选项时,我想知道它是否是列表的最后一个选项.
令人讨厌的是,无论选择了哪个选项,下面代码段中的相关条件始终返回true:
sel.change(function() { //this always returns true! if(jQuery('#' + this.id + ' option').is(':last')) { alert('hello I am the last option'); inputDiv.show(); inputDiv.find("input").attr('disabled',false); } else { inputDiv.hide(); inputDiv.find("input").attr('disabled',true); } });
即使我这样做,结果也是一样的:
if(jQuery('#' + this.id + ' option:selected').is(':last')) { ...
我究竟做错了什么?如果你知道,为什么这些测试都评估为真?
编辑:找到解决方案:
if(jQuery('#' + this.id + ' option:last').is(':selected')) { ... }
有谁知道更好的方法吗?
看,没有臃肿!
sel.selectedIndex == sel.length-1
这是W3C标准解决方案.
嘿,这是另一个......它是"jQuerish":)
$("select option:last").is(":selected")