如何判断页面加载时选中了哪些复选框?

How to tell what checkboxes are checked on page load?

我已经有一个 change event/listener 正在进行,但是当有人刷新页面时这不会做任何事情......等等(页面加载)并且已经选中了复选框。

我如何检查页面加载时是否选中了任何复选框,并获取它们的 name/value(随便)?

示例:我检查特定 DOM 元素中的任何复选框是否像这样被选中:

if($("#allocation input:checkbox").is(':checked')){
    console.log("something is checked");
}

但是我怎样才能真正获得页面加载时检查的 id

上面的里面有类似 $this.id 的东西? (但这当然行不通)。

或者你能以某种方式将 event.target 绑定到上面的 is.('checked') 条件中吗?

同样,我已经为 .change()(用户交互)部分准备好了一些东西,但是如果复选框被选中并且有人重新加载页面,该复选框仍然被选中(我需要迎合仍然如此)。

我的最终解决方案:(similar/same 如下所示)

KEY..使用'each'函数..

//on page load
                    $('#allocation input:checked').each(function() {
                        if($(this).is(':checked')){
                            //console.log("CB CHECK: " + $(this).attr('id'));
                            var targetID = $(this).attr('id');
                            $('#' + targetID + 'amount').prop('disabled', false);
                        }
                    });

这将遍历所有选中的复选框和console.log它们的 ID。

可通过 PROP 访问 ID。

$("input:checkbox:checked").each(function(){
    console.log($(this).prop("id"));
});

编辑:也获取它们的名称和值

$("input:checkbox:checked").each(function(){
    console.log($(this).prop("id"),$(this).prop("name"),$(this).val());
});

组合选择器 "#allocation input:checked"(或 "#allocation input:checkbox:checked"),这将为您提供所有已选中复选框的数组。然后用 each() 遍历它们,你可以用 this.id.

得到 id

将整个代码放在代码底部的自执行函数中 (function() {...})();,或者至少在所有复选框下方。像这样:

(function() {
  $("#allocation input:checked").each(function() {
    console.log(this.id + " is checked")
  });
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div id="allocation">
  <input type="checkbox" id="chk1" checked="checked" /> Option 1
  <input type="checkbox" id="chk2" /> Option 2
  <input type="checkbox" id="chk3" /> Option 3
  <input type="checkbox" id="chk4" checked="checked" /> Option 4
  <input type="checkbox" id="chk5" checked="checked" /> Option 5
</div>