我对 javascript
和 jQuery
还很陌生。我一直在寻找这个问题的答案,但没有运气,尽管我打赌这里有一些答案。如果这是一个重复,请提前道歉。
标记有 3 个具有不同类别的复选框,以及一个公共(public)类别。我想注意两个类中任一类中选中的框的数量何时发生变化,或者更确切地说,当选中或未选中的两个类中的至少一个框之间存在转换时。这两个有趣的类被命名为“professional
”和“vendor
”,共同的类是“account_type_checkbox
”。
当页面准备好时,我会计算选中的“professional
”和“vendor
”框的数量:
jQuery("input.professional[checked='checked'], input.vendor[checked='checked']").length
这似乎工作正常。我在公共(public)类中的复选框上有一个“change
”事件处理程序,它在触发时执行相同的计数。但是,当事件触发时,它获得的计数与页面加载时的计数相同 - 即,它看不到带有修改后的 checked
属性的更新后的 DOM。
我已经为此放置了一个jsfiddle http://jsfiddle.net/cm280s9z/1
有人可以帮我解决这个问题,和/或解释为什么我的代码不能按我预期的方式工作吗?
最佳答案
<强> http://jsfiddle.net/cm280s9z/3/
使用 alert($(":checkbox:checked").length);
获取所有标记复选框的总和。
正如本线程中指出的,还有其他几种方法可以做到这一点,例如通过复选框上的类来执行此操作: calculate the number of html checkbox checked using jquery
关于javascript - 如何让 jquery 选择器在更改处理程序中看到更新的 dom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27934400/