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

jQuery中每个函数迭代选择的问题,jquery,select,each,Jquery,Select,Each,我有3个选项,有几个选项。当一个选项被更改时,我想检查所有其他选择,无论它们是否也被选中(selected=“selected”)。所有的选择都是相同的形式 到目前为止,我有以下javascript来实现这一点 $("#form").change(function(event){ $(this).find("select").each(function(){ alert( $(this+"option:selected").length ); }); }); 基本上遵循这一方法

我有3个选项,有几个选项。当一个选项被更改时,我想检查所有其他选择,无论它们是否也被选中(selected=“selected”)。所有的选择都是相同的形式

到目前为止,我有以下javascript来实现这一点

$("#form").change(function(event){  
 $(this).find("select").each(function(){
    alert( $(this+"option:selected").length );
 });
});
基本上遵循这一方法:

根据单个$(this)select元素,该警报似乎不会给我1或0,但奇怪的是,它会计数为2(在最后一次选择后,警报为3乘以2。在第一次选择后,警报为3乘以0,在第二次选择后,警报为3乘以1,在最后一次选择后,警报为3乘以2)。我希望它发出警报,例如0 0,然后1 0 0,然后1 0 1,最后1 1 1 1


你知道这是怎么来的,以及如何实现你想要的吗?thx.

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

$(this).find("option:selected").length
$(this).find("option:selected").length
不能将dom元素前置到选择器(因为它们不是字符串)。您将得到一个类似于“Object objectoption:selected”的选择器,因为它将隐式调用
.toString()
方法,因为它与两用
+
操作符一起使用


jQuery选择器必须是格式良好的选择器。

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

$(this).find("option:selected").length
$(this).find("option:selected").length
不能将dom元素前置到选择器(因为它们不是字符串)。您将得到一个类似于“Object objectoption:selected”的选择器,因为它将隐式调用
.toString()
方法,因为它与两用
+
操作符一起使用

jQuery选择器必须是格式良好的选择器。

此+”选项:selected“
不是有效的选择器。尝试:

此+”选项:所选“
不是有效的选择器。尝试: