我浏览了该网站,似乎找不到这个问题的答案。如果确实存在,请随时引导我回答上述问题。
我目前正在尝试执行一些基于树的复选框操作,并且遇到了一些我觉得奇怪的行为。
在 Google Chrome 中,我发现检查复选框会留下一些“残留物”,如果您愿意的话,这将不允许我使用“attrRemove('checked');”检查或取消选中该复选框。
有趣的是,Internet Explorer (9) 具有我想要的结果。请在 Chrome 和 IE 中查看这个 jsFiddle 以更好地比较效果。
http://jsfiddle.net/xixionia/9K5ft/ http://jsfiddle.net/xixionia/9K5ft/
任何人都可以解释这些差异,以及我如何能够选中/取消选中 chrome 中已“手动”选中的复选框?
HTML
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
<input type="checkbox" />
JavaScript
$(':checkbox').click(function(e) {
if($(this).is(':checked')) {
$(':checkbox').attr('checked', 'checked');
} else {
$(':checkbox').removeAttr('checked');
}
});
在此先感谢您的帮助。 :)
edit:
我能够找到这个解决办法。如果其他人有任何其他解决方案,请告诉我,我会将其标记为解决方案。 :)
$(':checkbox').click(function(e) {
var value = this.checked;
$(':checkbox').each(function(){ this.checked = value; });
});
edit:
事实证明,这个问题是 jQuery 1.6 特有的。以前版本的 jQuery 不会遇到此问题。不过,我在这里发布了一个解决方案:使用 jQuery 设置“选中”复选框? https://stackoverflow.com/questions/426258/how-do-i-check-a-checkbox-with-jquery-or-javascript/5407529#5407529