javascript - 如何让 jquery 选择器在更改处理程序中看到更新的 dom

标签 javascript jquery events

我对 javascriptjQuery 还很陌生。我一直在寻找这个问题的答案,但没有运气,尽管我打赌这里有一些答案。如果这是一个重复,请提前道歉。

标记有 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/

相关文章:

JQuery - 通过 $.each 循环查找表中的文本框值

java - 基于模块或插件开发系统应该如何入手?

javascript - Firefox DOMContentLoaded 事件问题

javascript - 如何在编辑文本后更改 html 元素

javascript - 提交时使用 javascript 在表单中打开选项卡

Javascript:setTimeout 和引用中的函数

javascript - 从父 div 中清除子 div

javascript - Kickstart HTML 编辑器工具栏

javascript - AngularJS:在保存到 Controller 之前从服务获取更新的数据

javascript - 不使用 pos :fixed 使 DIV 随页面滚动