jQuery 每个函数迭代选择的问题
我有 3 个选择,有几个选项。当一个选项更改时,我想检查所有其他选择,无论它们是否也被选中(selected =“selected”)。所有选择都采用相同的形式。
到目前为止,我有以下 javascript 来做到这
$("#form").change(function(event){
$(this).find("select").each(function(){
alert( $(this+"option:selected").length );
});
});
一点 基本上遵循这种方法: 检查是否使用 jQuery 选择了选项,如果没有选择默认值
警报似乎根据单个 $(this) 选择元素给了我 1 或 0,但奇怪的是总计为2(选择最后一个选择后警报 3 次 2。第一次选择后警报 3 次 0,第二次选择后警报 3 次 1,最后一次选择后警报 3 次 2)。我希望它发出警报,例如 0 0 0,然后是 1 0 0,然后是 1 0 1,最后是 1 1 1。
知道这是如何发生的以及如何实现想要的吗?谢谢。
I have 3 selects with a couple of options. When an option is changed I want to check all of the other selects, whether they are also selected or not (selected="selected"). All of the selects are in the same form.
So far I have the following javascript to do that
$("#form").change(function(event){
$(this).find("select").each(function(){
alert( $(this+"option:selected").length );
});
});
Basically following this approach: Check if option is selected with jQuery, if not select a default
The alert doenst seem to give me 1 or 0 based on the individual $(this) select element, but strangely counts up to 2 (alerts 3 times 2 after the last select is selected. After the first select it alerts 3 times 0, after the second 3 times 1, and 3 times 2 on the last). I want it to alert for example 0 0 0, then 1 0 0 then 1 0 1 and finally 1 1 1.
Any idea how this comes and how to accomplish the wanted? thx.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的内部选择器不正确。它应该是:
您不能将 dom 元素添加到选择器(因为它们不是字符串)。您最终会得到一个看起来像“Object objectoption:selected”的选择器,因为它会隐式调用
.toString()
方法,因为它与双重目的+< 一起使用/代码> 运算符。
jQuery 选择器必须是格式良好的 CSS3 选择器。
Your inner selector is incorrect. It should be:
You can't prepend a dom element to a selector (since they are not strings). You'll end up with a selector that looks something like "Object objectoption:selected" since it will implicitly call the
.toString()
method as it is being used with the dual purpose+
operator.jQuery selectors need to be well-formed CSS3 selectors.
this+"option:selected"
不是有效的选择器。尝试:this+"option:selected"
is not a valid selector. Try: