检查所有复选框使用jQuery
$(document).ready(function(){
function set_checked {
alert('test');
$('*:checkbox').attr('checked', checked);
}
});
而且这个网站检查所有复选框使用jQuery
<input onclick="set_checked()" value="Check all" type="button" />
不出于某种原因。没有警报框或什么都没有。
你有几个问题,
- 在
set_checked
函数定义缺少括号 - 是心不是真正的全球
使用jQuery未定义的变量checked
onclick
引用全局函数它是更好使用jQuery 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);
});
});
<input id="check_all" value="Check all" type="button"/>
喜欢点击(函数()(...)更好,现在工作谢谢 – ganjan 2011-02-24 17:32:04
你是不是''.prop'而不是'.attr'? – 2013-10-04 06:29:47
是的我的意思是'.attr',因为它是2011年合适的jQuery方法但您提出了一个有效的观点,即当前版本的jQuery建议使用'.attr'作为元素属性,'.prop'作为DOM对象属性。请参见[jQuery'.prop'文档页面](http://api.jquery。 com/prop /)获取更多关于'.prop'行为的信息。 – rennat 2013-10-04 16:07:42
尝试:
function set_checked() {
alert('test');
$('*:checkbox').attr('checked', 'checked');
}
你忘了()
编辑:有人说下面的检查必须是一个字符串。
让你的JavaScript函数:
function set_checked() {
alert('test');
$('input:checkbox').attr('checked', 'checked');
}
你的函数定义不正确,因为它是缺失的名称定义中的括号内。
编辑:也缺少检查属性上的引号。也使选择器更加明确。
您没有正确创建该功能。您需要在set_checked
和{
之间添加()
。
$('*:checkbox').attr('checked', checked);
据推测解析为
$('*:checkbox').attr('checked', undefined);
你应该有
$('*:checkbox').attr('checked', 'checked');
边注:没有理由把里面$(document).ready();
你的职责,那是必须在启动时运行的东西。
更新:
我下面的例子来扔的,你想这样做jQuery的风格全宽。
HTML:
<p><input id='test' type='submit' value='Click me' onclick='checkAll();' /></p>
<p>Let's see:</p>
<ul>
<li><input type='checkbox'></li>
<li><input type='checkbox'></li>
<li><input type='checkbox'></li>
</ul>
的JavaScript:
$(document).ready(function() {
$('#test').click(function (event) {
$('input[type="checkbox"]').attr('checked', 'checked');
});
});
您可以测试它here。
更换整个示例代码:
$(document).ready(function(){
function set_checked {
alert('test');
$('*:checkbox').attr('checked', checked);
}
});
有:
function set_checked() {
alert('test');
$('*:checkbox').attr('checked', 'checked');
}
正如其他人所说,你需要()的函数定义,和引号 '检查',但你也需要在全局范围内定义的函数,因此不在jQuery的准备处理程序中。
您在函数内部定义了set_checked函数,这意味着它不在全局范围内,并且无法通过输入点击事件来访问。
使用萤火虫或其他JavaScript控制台可以帮助防止这种问题,因为他们会告诉你,如果你有语法错误。 – rennat 2011-02-24 17:08:49