使用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'); }); });
你可以在这里测试一下 。