勾选岗位checkbox可以显示对应单位,但是取消勾选不触发remove对应单位的checkbox,继续勾选继续出现对应单位,求解决触发remove方法
对应方法代码如下:function clickPostAuto(obj){
if($(obj).attr("checked") == true){
$.getJSON('./!getUnitsByPostId?postId='+obj.value+'&id=${entity.id}',function(json){
var unitMap = json.unitMap;
var lackNum = json.lackNum;
var requestNum = json.requestNum;
var addUnit="";
for(var i in unitMap){
addUnit += "<input type='checkbox' value="+i+" name='unitIds'>"+unitMap[i]+"共需<span id='"+i+"_"+"' color='red'>"+requestNum[i]+"</span>人; 空缺<span id='"+i+"' color='red'>"+lackNum[i]+"</span>人</input>";
}
$("#unit").append(addUnit);
});
}else{
$.getJSON('./!getUnitsByPostId?postId='+obj.value+'&id=${entity.id}',function(json){
var unitMap = json.unitMap;
var lackNum = json.lackNum;
var requestNum = json.requestNum;
var addUnit="";
for(var i in unitMap){
addUnit += "<input type='checkbox' value="+i+" name='unitIds'>"+unitMap[i]+"共需<span id='"+i+"_"+"' color='red'>"+requestNum[i]+"</span>人; 空缺<span id='"+i+"' color='red'>"+lackNum[i]+"</span>人</input>";
}
$("#unit").remove(addUnit);
});
}
}

解决方案 »

  1.   

    $("#unit").remove(addUnit);
    addUnit是html串 不是 选择器表达式啊
    直接$("#unit").html("");
      

  2.   


    岗位是可以多选的,对应的单位也是可以多选的~那你在生成append方法用的html时就要做好标识,比如说你把obj.value
    作为checkbox、span id的一部分(obj.value_i_checkbox,obj.value_i_span)
    这样在remove的时候  查找所有id 以 obj.value_开头的元素 
    $("[id^='obj.value_']").remove();