使用jQuery的each函数迭代选择器时出现问题。

15 浏览
0 Comments

使用jQuery的each函数迭代选择器时出现问题。

我有3个带有几个选项的选择框。当选项发生改变时,我想要检查所有其他的选择框,无论它们是否也被选中(selected=\"selected\")。所有的选择框都在同一个表单中。\n到目前为止,我有以下的javascript来实现这个功能:\n

$("#form").change(function(event){  
 $(this).find("select").each(function(){
    alert( $(this+"option:selected").length );
 });
});

\n基本上,遵循这个方法:检查jQuery中的选项是否被选中,如果没有选中则选择默认选项\n这个alert似乎并没有根据个别的$(this)选择框元素给我1或0,而是奇怪地计数到2(在最后一个选择框被选中后,会弹出3次2的警报。在第一个选择框之后,弹出3次0,第二个选择框之后弹出3次1,最后一次弹出3次2)。我希望它弹出例如0 0 0,然后是1 0 0,然后是1 0 1,最后是1 1 1。\n有没有什么想法是怎么回事,以及如何实现所需的结果?谢谢。

0
0 Comments

问题:使用jQuery的each函数迭代选择器时出现问题。

原因:选择器this+"option:selected"不是一个有效的选择器。

解决方法:尝试使用$(this).find("option:selected").length作为选择器。

0
0 Comments

问题原因:内部选择器不正确,应该是$(this).find("option:selected").length。

解决方法:修正内部选择器,改为$(this).find("option:selected").length。

0