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

问题描述 投票:0回答:2

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

我希望默认情况下将所有复选框设置为true,我可以在控制台中执行此操作,但是当我将它放在我的脚本中时,它不起作用,因为函数可能在DOM元素加载之前加载。

我尝试了两种不同的方法,似乎都没有用。在这两种情况下,它们仅适用于我键入的硬编码复选框(不是由for loops / 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;
  };
});
javascript jquery dom checkbox
2个回答
2
投票

您可以使用此示例设置当前页面上所有复选框的属性以进行检查。

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

1
投票

看起来你有正确的方法从评论中做到这一点,即更改添加复选框的javascript,最初只需添加一个checked属性。但对于那些希望做类似事情的人来说,他们无法控制复选框,你的jQuery函数可以工作,但可以更简单地完成这样的事情:

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

jQuery已经为你完成了输入对象的循环(在你的尝试中,你最终会向每个输入添加'checked',而不仅仅是复选框)。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.