执行ajax操作,动态刷新ul列表的内容,先容empty(),remove()操作将DOM元素移除,然后在添加新的元素。但是在IE6下报错了,
原来的:
var parentFloderUl = $("#filterToFloders",parent.document);
//重新渲染文件夹列表
var html="";
var newFloaderId = "";
var newFloaderName = "";
for(var i=0; i<floaderList.length; i++){
var liStr = "";
if(floaderList[i].name == folderName){
newFloaderId = floaderList[i].fid;
newFloaderName = floaderList[i].name;
}
if(floaderList[i].type != 5){
liStr = '<li id="{0}" f_name = "{1}" ><a href="javascript:void(0);" style="205px;206px\0; *206px;" ><span>{1}</span></a></li>'.format(floaderList[i].fid,floaderList[i].name);
}
if(i == floaderList.length-1){ //最后一项上加上一个class
liStr = '<li id="{0}" f_name = "{1}" ><a href="javascript:void(0);" class="clasy_bd" style="205px;206px\0; *206px;" ><span>{1}</span></a></li>'.format(floaderList[i].fid,floaderList[i].name);
}
html += liStr;
}
html += '<li id="addFloder"><a href="javascript:void(0);" style="205px;206px\0; *206px;"><span>新建文件夹</span></a></li>';
parentFloderUl.empty();
parentFloderUl.children().remove();
$(html).appendTo(parentFloderUl);
有两个问题:
1.css hacker
style="205px;206px\0; *206px;" 在js里面斜杠需要转义,这里没转义导致在Ie6下显示解析错误。
正确:style="205px;206px\\0; *206px;"
2.$(html).appendTo(parentFloderUl); 要换成parentFloderUl.append(html);这里还没搞懂是什么原因。