jquery设置和删除选中的属性不起作用,javascript确实如此

Nor*_*ont 1 javascript checkbox jquery

为清楚起见,假设我有一个复选框,我想检查并取消选中两个按钮.

我可以使用基本的javascript检查/取消选中该框,但是使用jquery,一旦我删除属性,我就无法将其设置回来...任何想法为什么?

我创建了一个基本的fiffle来说明:

http://jsfiddle.net/2K244/

<button id='button1'>check</button>
<button id='button2'>uncheck</button>
<input type="checkbox" id="myBox1" value="polo" />
<br/>
<button id='button3'>check</button>
<button id='button4'>uncheck</button>
<input type="checkbox" id="myBox2" value="polo" />
<br/>

$(document).ready(function () {
    $('#button1').click(function () {
        $('#myBox1').attr('checked','checked');
    });
    $('#button2').click(function () {
        $('#myBox1').removeAttr('checked');
    });
    $('#button3').click(function () {
        document.getElementById('myBox2').checked = true;
    });
    $('#button4').click(function () {
        document.getElementById('myBox2').checked = false;
    });

});
Run Code Online (Sandbox Code Playgroud)

css*_*css 7

你应该使用.prop()而不是.从jQuery的文档.attr():

从jQuery 1.6开始,.attr()方法为尚未设置的属性返回undefined.要检索和更改DOM属性(如表单元素的已检查,已选择或已禁用状态),请使用.prop()方法.