jQuery的问题每个函数迭代选择

时间:2011-04-06 01:16:26

标签: jquery select each

我有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。

2 个答案:

答案 0 :(得分:3)

您的内部选择器不正确。它应该是:

$(this).find("option:selected").length

您不能将dom元素添加到选择器(因为它们不是字符串)。您最终会得到一个类似于“Object objectoption:selected”的选择器,因为它将隐式调用.toString()方法,因为它与双用+运算符一起使用。

jQuery选择器需要是格式正确的CSS3选择器。

答案 1 :(得分:1)

this+"option:selected"不是有效的选择器。尝试:

$(this).find("option:selected").length