选中或取消选中所有已启用的复选框

时间:2017-11-11 00:03:54

标签: jquery checkbox

我在点击'#leg-chkAll'时尝试切换所有已启用的复选框,但是 我错过了什么!

如果可能,请提供一些解释javascript代码的评论。



public int generateRandomNumberWithExcepts(int start, int end, List<Integer> excepts) {
    int size = excepts.size();
    int range = end - start + 1 - size;
    int randNum = random.nextInt(range) + start;
    excepts.sort(null); // sort excluding values in ascending order
    int i=0;
    for(int except : excepts) {
        if(randNum < except-i){
            return randNum + i;
        }
        i++;
    }
    return randNum + i;
}
&#13;
$(document).ready(function(){
  $('#leg-chkAll).on('click', function () {
		$('div#legend').find('div :checkbox:enabled')					
			.prop('checked', this.checked)
			.find('tbody :checkbox').toggleClass('selected', this.checked);

	});
});
&#13;
&#13;
&#13;

此致 埃利奥·费尔南德斯

1 个答案:

答案 0 :(得分:1)

两个问题:

  1. 您似乎只是错过了这里的结束单引号:$('#leg-chkAll)

  2. #leg-chkAll是第一个div的id,但您想要听第一个复选框上的点击,而不是包含div。

  3. 如果您将id放在复选框元素上,它就会起作用。将第一个HTML块更改为:

    <div>
      <input type="checkbox" id="leg-chkAll" checked>
      <span class="leg-des">All</span>
    </div>
    

    然后像这样修改你的jQuery:

    $(document).ready(function(){
      $('#leg-chkAll').on('click', function () {
        $('#legend').find(':checkbox:enabled').prop('checked', this.checked)
      });
    });
    

    这是一个有效的jsFiddle:https://jsfiddle.net/t9w944z9/