在DOM页面加载后,将所有复选框设置为true

时间:2019-04-10 16:40:01

标签: javascript jquery dom checkbox

我只有在网页加载后才使用Java的for循环创建多个复选框。

我想将所有复选框默认设置为true,我可以在控制台中执行此操作,但是当我将其放入脚本时,由于该函数可能在DOM元素加载之前就已加载,因此它不起作用。

我尝试了两种不同的方法,但似乎都没有用。在这两种情况下,它们仅适用于我键入的硬编码复选框(不适用于for循环/ DOM生成)。如果有人知道我能解决这个问题,我将不胜感激!

这是我的基本jQuery / JS代码。

$(document).ready(function() {
  var setTrue = document.getElementsByTagName("input");
  for (var i = 0; i < setTrue.length; i++) {
    setTrue[i].checked = true;
  };
});

$(window).on("load", function() {
  var setTrue = document.getElementsByTagName("input");
  for (var i = 0; i < setTrue.length; i++) {
    setTrue[i].checked = true;
  };
});

2 个答案:

答案 0 :(得分:2)

您可以使用此示例将当前页面上所有复选框的属性设置为选中。

$(function(){
   $('input:checkbox').prop('checked', true)
})

答案 1 :(得分:1)

看起来您从注释中找到了正确的方法,这是更改添加了复选框的javascript,以使其最初只是具有选中的属性。但是对于其他希望做类似事情的人,如果他们无法控制复选框,则您的jQuery函数可以工作,但可以更简单地做到这一点:

$(document).ready() {
    $('input:checkbox').attr('checked', true)
}

jQuery已经为您完成了输入对象的循环操作(并且尝试将其添加到每个输入中,而不仅仅是复选框添加了“ checked”)。