在设置checked时,如jquery
$("#checkbox").attr("checked",true);
页面显示checked属性已添加,可是未被选中(没打勾),
this
在以下代码中没有问题:code
function tree_item_checked(cl,type){ if($("#item_"+cl).is(":checked")) { $("input[key='tree_item_checkbox']").each(function(){ if($.trim($(this).attr("id"))!=("item_"+cl)){ $(this).attr("checked",false); } }); $("#superNode").val(cl); } else{ $("#superNode").val(""); } }
这里只设置取消选中,运行正常。input
若是须要经过点击按钮或者超连接刷新checkbox选中状态,以下:it
function(rowId, status, e){ if (!$("#item_"+rowId).is(":checked")){ $("#item_"+rowId).attr("checked",true); $("#superNode").val(rowId); $("input[key='tree_item_checkbox']").each(function(){ if($.trim($(this).attr("id"))!=("item_"+rowId) && typeof($("#item_"+rowId).attr("checked"))!="undefined"){ $(this).attr("checked",false); } }); } else { $("#superNode").val(""); $("#item_"+rowId).attr("checked",false); } }
会产生没法选中的问题。这里将attr改成prop方法运行正确:io
function(rowId, status, e){ if (!$("#item_"+rowId).is(":checked")){ $("#item_"+rowId).prop("checked",true); $("#superNode").val(rowId); $("input[key='tree_item_checkbox']").each(function(){ if($.trim($(this).attr("id"))!=("item_"+rowId) && typeof($("#item_"+rowId).attr("checked"))!="undefined"){ $(this).prop("checked",false); } }); } else { $("#superNode").val(""); $("#item_"+rowId).prop("checked",false); } }
该方法是jquery1.6新增,建议使用prop方法给属性赋值。function
笔记,备忘方法