使用jquery检查所有复选框

$(document).ready(function(){ function set_checked { alert('test'); $('*:checkbox').attr('checked', checked); } }); 

而这个HTML

  

由于某种原因不起作用。 没有警报框或没有。

你有一些问题,

  • set_checked函数定义中缺少括号
  • 未定义的变量已checked
  • onclick引用不是真正全局的全局函数

使用jQuery,最好使用jQuery click方法将click事件添加到元素中。 以下是如何使用jQuery正确执行此操作。

 $(document).ready(function(){ // If you want to use the `set_checked` function elsewhere do this function set_checked() { $('*:checked').attr('checked', true); } $('#check_all').click(set_checked); // If you are only doing `set_checked` on the button press do this $('#check_all').click(function() { $('*:checked').attr('checked', true); }); });  
 $('*:checkbox').attr('checked', checked); 

可能是解决了

 $('*:checkbox').attr('checked', undefined); 

你应该有

 $('*:checkbox').attr('checked', 'checked'); 

尝试:

 function set_checked() { alert('test'); $('*:checkbox').attr('checked', 'checked'); } 

你忘了()

编辑:正如下面所说,检查必须是一个字符串。

您没有正确创建该function。 你需要在set_checked{之间添加()

替换整个示例代码:

  $(document).ready(function(){ function set_checked { alert('test'); $('*:checkbox').attr('checked', checked); } }); 

有:

 function set_checked() { alert('test'); $('*:checkbox').attr('checked', 'checked'); } 

正如其他人所提到的,你需要函数定义上的()和’checked’的引号,但是你还需要在全局作用域中定义的函数,所以不要在jquery onready处理程序中。

您在函数内部定义了set_checked函数,这意味着它不在全局范围内,并且无法通过输入单击事件进行访问。

制作你的javascript函数:

 function set_checked() { alert('test'); $('input:checkbox').attr('checked', 'checked'); } 

您的函数未正确定义,因为它缺少名称定义中的括号。

编辑:错过了已检查属性的引号。 也使选择器更加明确。

附注:没有理由将您的函数放在$(document).ready(); ,这是必须在启动时运行的东西。

更新:

我将举一个你想在全范围内做jQuery风格的例子。

HTML:

 

Let's see:

JavaScript的:

 $(document).ready(function () { $('#test').click(function (event) { $('input[type="checkbox"]').attr('checked', 'checked'); }); }); 

你可以在这里测试一下 。