我有3个选择,有几个选项。当一个选项被更改时,我想检查所有其他选择,是否也被选中(选择=“选中”)。所有选择都采用相同的形式。
到目前为止,我有以下javascript来做到这一点
$("#form").change(function(event){
$(this).find("select").each(function(){
alert( $(this+"option:selected").length );
});
});
基本上遵循这种方法:Check if option is selected with jQuery, if not select a default
警报doenst似乎根据单独的$(this)select元素给我1或0,但奇怪的是最多计数2(在最后一次选择之后警报3次2。在第一次选择之后警报3次0,经过第二次3次1次,最后3次为2次)。我希望它提醒例如0 0 0,然后是1 0 0然后是1 0 1,最后是1 1 1。
知道这是怎么来的,以及如何完成通缉? THX。
答案 0 :(得分:3)
您的内部选择器不正确。它应该是:
$(this).find("option:selected").length
您不能将dom元素添加到选择器(因为它们不是字符串)。您最终会得到一个类似于“Object objectoption:selected”的选择器,因为它将隐式调用.toString()
方法,因为它与双用+
运算符一起使用。
jQuery选择器需要是格式正确的CSS3选择器。
答案 1 :(得分:1)
this+"option:selected"
不是有效的选择器。尝试:
$(this).find("option:selected").length