有什么办法可以压缩这段代码吗?

最后一个

此代码用于 4 个复选框。

当前 3 个框被选中时,第 4 个需要被选中,当第 4 个未选中时,前 3 个应取消选中,如果所有 4 个框都选中并且前 3 个中的一个未选中,则第 4 个应取消选中。

问题是此代码需要使用不同的 id 重复 7 次。即#a1 将是#b1 或#a4 将是#d4。

$('#a1, #a2, #a3, #a4').change(function() {
if ($(this).is('#a1, #a2, #a3')) {
  if ($('#a4').prop('checked', true)) {
    $('#a4').prop('checked', false);
  }

  if ($('#a1:checked').length === $('#a1').length && $('#a2:checked').length === $('#a2').length && $('#a3:checked').length === $('#a3').length) {
    $('#a4').prop('checked', true);
  }
}
if ($(this).is('#a4')) {
  if ($(this).prop('checked')) {
    $('#a1, #a2, #a3').each(function(){
        $(this).prop('checked', true);
    });
  }
  else {
    $('#a1, #a2, #a3').each(function(){
        $(this).prop('checked', false);
    });
      }
    }
});

谢谢大家

亚历克斯·卡普斯汀

https://jsfiddle.net/cwLhdcwL/

要拆分复选框块,请使用:data-area属性。

#a4, #b4, ...元素应该用data-role="cb-master"属性标记,而#a[1..3], #b[1..3], ...元素应该用data-role="cb-child"属性标记

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有什么办法可以让这段代码更短吗?

有什么办法可以减少这段代码?

有什么办法可以用python中的列表理解来编写这段代码吗?

有什么办法可以使这段代码更好?

有什么办法可以使这段代码更短?

有什么办法可以使这段代码更快?

有什么办法可以简化这段 PHP 代码?

有什么办法可以使这段代码更短?干亚图

有什么办法可以向量化这个Matlab代码吗?

有什么办法可以最小化js代码吗?

有人可以告诉我这段代码有什么问题吗

有人可以解释一下这段代码有什么问题吗?

我可以知道为什么这段代码没有给出任何输出吗?

这段代码发生了什么。有人可以解释我吗?

有人可以向我解释在这段代码中“从未”做什么吗?

有人可以解释这段代码中发生了什么吗?

有人可以向我解释这段代码在做什么吗?

有人可以解释一下这段javascript代码在做什么吗?

有人可以向我解释为什么这段代码不起作用吗?

有什么办法可以将两个角度压缩到2个字节吗?

移位:有人可以解释这段代码的作用吗?

有人可以为我解释这段代码吗

有人可以帮我简化这段代码吗?

有人可以解释这段代码的作用吗?

有人可以向我解释这段代码吗

有人可以指出这段代码中的错误吗?

有人可以解释我这段代码吗?

我应该期望该代码被阻止吗?有什么办法可以阻止它吗?

Go的这段代码有什么作用?是继承吗?