Shawyu_ 2019-04-17 17:17 采纳率: 0%
浏览 402

JS中除了bind()传参和箭头函数传参,还有什么方法用JS统计勾选了多少个单选?

窗口里有一些单选框,想用JS统计勾选了多少个单选。

要求是:要把计数和遍历功能分开;n定义在constructor里(还有其他函数用)

<div id="box">
    <input type="checkbox" class="check"/>
    <input type="checkbox" class="check"/>
    <input type="checkbox" class="check"/>
</div>
<script>
    class Cart {
        constructor(selector) {
            this.check = Array.from(document.querySelectorAll(".check"));
            this.n = 0;
            this.bindEvents();
        }
        bindEvents () {
            this.check.forEach(check => {
                check.onchange = this.checkChange.bind(this,check);
                // check.onchange = () => {this.checkChange(check);};
            })
        }
        checkChange (check) {
            this.n += check.checked ? 1 : -1;
            console.log(this.n);
        }
    }
    new Cart("#box");
</script>

我想了很久,不得其解。

除了这样,还能怎么写?

比如不用bind()传参和箭头函数传参,写check.onchange = this.checkChange;的话,checkChange()应该怎么改?

或者都不用箭头函数怎么改?

新人第一次提问,求大神斧正。

  • 写回答

2条回答 默认 最新

  • 小肥的胖 2019-04-17 19:06
    关注

    可以直接用 jquery的选择器,选择出所有checked的checkbox

    不过看你的意思是想用对象来,想封装成对象的方法,然后触发onChange事件。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题