<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script><table><input type="checkbox" id='cb' />
<script>
    $(function () {
        //alert($('#cb').prop('checked'))
        $('#cb').attr('checked', true);
    });
</script>没有问题啊,jQuery 中 attr() 和 prop() 方法的区别

解决方案 »

  1.   

    其实我觉得用$("#").is(":checked")最明晰了
      

  2.   

    我比较关心的是你这个checkobj到底是个什么玩意。
      

  3.   

    这是我的部分代码:var machines = (item['formachines']).split("|");
                 for (var i = 0; i < machines.length; i++) {
                 var strID = "machine_" + machines[i];
                
                 var checkobj = $("#" + strID);
                 if (checkobj.prop('checked') == false) {
                 checkobj.prop('checked', true) ;
                 }
                 }请不要质疑checkobj的有效性,因为我把checkobj.prop('checked', true) ;替换成checkobj.click() ;是可以正常工作的。
      

  4.   

    帖完整代码来调试下,请报告你测试的浏览器版本
    官方推荐使用prop的
      

  5.   

    多谢版主老大,我也是看到老外们说1.6以上用prop。我用ie和Firefox测试过,都是相同的结果。
    完整代码比较多,总体就是通过ajax向服务器请求一些配置信息,服务器返回JSON数据,客户端将某个node的数据根据分隔符split到array中,然后就是这段代码,根据array中的数据生成element的id,通过id获得checkbox对象并设置checked属性。
    其实“checked”属性是设置成功了,因为我尝试获取该属性值时得到的是true,只是UI上没有打勾。但是checkobj.click()却可以实现我想要的结果。
    因为我不是搞web开发的,所以做法比较繁琐,还请见谅,对了,这些checkbox是放在bootstrap的portlet中的,应该不会有什么问题吧?我把他们的class都清除掉了。
      

  6.   

    bootstrap,不了解,是不是同其他UI美化过checkbox什么的,你直接操作原来的dom对象,其实没有响应到对应的ui上什么的,原来checkbox已经被其他dom对象替换了
      

  7.   

    你的checkbox是真正的<input type="checkbox" />复选框吗?是不是用图片模拟的?
    用下面代码测试下<input type="checkbox" id="aa" />
    <script type="text/javascript">
    $(function(){
    $("#aa").prop('checked', true);
    });
    </script>