此代码适用于chrome / ff / ie9但不是ie8 / 7.
这是JS:
function doDistricts(theData){
var district="";
var district="";
$(theData).find("district").each(function(){
var theDistrict = $(this);
var districtName = theDistrict.text();
var level = theDistrict.attr("level");
var attr = theDistrict.attr('deleted');
if(typeof attr !== 'undefined' && attr !== false){
district=district+'\t\t\t<div class="district deleted">\n';
district=district+'\t\t\t\t<header class="clearfix doNode" data-role-id="'+districtName+'" data-role-nodeLevel="'+level+'" data-role-nodeValue="'+districtName+'">\n';
district=district+'\t\t\t\t\t<span class="arrow"></span>\n';
district=district+'\t\t\t\t\t<img src="/img/address_list/map.png" alt="'+districtName+'" class="icon" />\n';
district=district+'\t\t\t\t\t<span class="text">'+districtName+'</span>\n';
district=district+'\t\t\t\t\t<a class="add" href="#">Add</a>\n';
district=district+'\t\t\t\t</header>\n';
district=district+'\t\t\t\t<div class="children"></div>\n';
district=district+'\t\t\t</div>\n';
}else{
district=district+'\t\t\t<div class="district">\n';
district=district+'\t\t\t\t<header class="clearfix doNode" data-role-nodeLevel="'+level+'" data-role-id="'+districtName+'" data-role-nodeValue="'+districtName+'">\n';
district=district+'\t\t\t\t\t<span class="arrow"></span>\n';
district=district+'\t\t\t\t\t<img src="/img/address_list/map.png" alt="'+districtName+'" class="icon" />\n';
district=district+'\t\t\t\t\t<span class="text">'+districtName+'</span>\n';
district=district+'\t\t\t\t\t<a class="remove" href="#">Remove</a>\n';
district=district+'\t\t\t\t</header>\n';
district=district+'\t\t\t\t<div class="children"></div>\n';
district=district+'\t\t\t</div>\n';
}
});
return district;
}
$('div.1').html(doDistricts($(theData)));
在包含更多代码等的工作环境中,会生成内容,但<header>
标记过早关闭,这意味着应该在<header>
标记内的所有代码(<span class="arrow">
等)实际上是在它之外。为什么会这样?