for循环里的string字符串不会拼接的。可以用alert去证明确定循环了N次,但是里面的字符串只有一次拼接的结果。function showfirst(request){
var result = request.responseText.parseJSON();
var str='<select id="mapByFirstRegionalismId" name="mapByFirstRegionalismId" > ';
if (result.list.length > 0){
for (var i = 0; i < result.list.length; i++){
var temp = result.list[i];
str+='<option value="'+temp.mapId+'">'+temp.planceName+'</option>';
}
} else {
str+='<option value="0">请选择</option>';
}
str+='</select>';
$("first").innerHTML = str;
}我用的是ajax+json返回的list。在java类里打印完全没有问题。但是在这里就只剩下一条记录了。后面的</select>这个标签也消失了。
var result = request.responseText.parseJSON();
var str='<select id="mapByFirstRegionalismId" name="mapByFirstRegionalismId" > ';
if (result.list.length > 0){
for (var i = 0; i < result.list.length; i++){
var temp = result.list[i];
str+='<option value="'+temp.mapId+'">'+temp.planceName+'</option>';
}
} else {
str+='<option value="0">请选择</option>';
}
str+='</select>';
$("first").innerHTML = str;
}我用的是ajax+json返回的list。在java类里打印完全没有问题。但是在这里就只剩下一条记录了。后面的</select>这个标签也消失了。
明明有35条件记录的。
最后再alert下完整的 是什么结果
function showfirst(request){
var result = request.responseText.parseJSON();
var str='<select id="mapByFirstRegionalismId" name="mapByFirstRegionalismId" > ';
if (result.list.length > 0){
for (var i = 0; i < result.list.length; i++){
var temp = result.list[i];
str+='<option value="'+temp.mapId+'">'+temp.planceName+'</option>';
alert(str);
}
} else {
str+='<option value="0">请选择</option>';
}
str+='</select>';
$("first").innerHTML = str;
}
var result = request.responseText.parseJSON();
var str="<select id='mapByFirstRegionalismId' name='mapByFirstRegionalismId' > ";
if (result.list.length > 0)
{
for (var i = 0; i < result.list.length; i++)
{
var temp = result.list[i];
str+="<option value='"+temp.mapId+"'>"+temp.planceName+"</option>";
}
}
else { str+="<option value='0'>请选择</option>";
}
str+="</select>";
$("first").innerHTML = str; }
试一下
(2,'天津\0',4,NULL,NULL),
(3,'河北\0',1,NULL,NULL),
(4,'山西\0',1,NULL,NULL),
(5,'内蒙古\0',1,NULL,NULL),
(6,'山东\0',1,NULL,NULL),
(7,'江苏\0',1,NULL,NULL),
(8,'安徽\0',1,NULL,NULL),
(9,'浙江\0 ',1,NULL,NULL),
(10,'福建\0 ',1,NULL,NULL),
(11,'江西\0',1,NULL,NULL),
(12,'上海\0 ',4,NULL,NULL),
(13,'广东\0',1,NULL,NULL),
(14,'广西\0',1,NULL,NULL),
(15,'海南\0',1,NULL,NULL),
(16,'湖北\0',1,NULL,NULL),
(17,'湖南\0',1,NULL,NULL),
(18,'河南\0',1,NULL,NULL),
(19,'宁夏\0 ',1,NULL,NULL),
(20,'新疆\0',1,NULL,NULL),
(21,'青海\0',1,NULL,NULL),
(22,'陕西\0',1,NULL,NULL),
(23,'甘肃\0',1,NULL,NULL),
(24,'四川\0',1,NULL,NULL),
(25,'云南\0 ',1,NULL,NULL),
(26,'贵州\0',1,NULL,NULL),
(27,'西藏\0',1,NULL,NULL),
(28,'重庆\0 ',4,NULL,NULL),
(29,'辽宁\0',1,NULL,NULL),
(30,'吉林\0',1,NULL,NULL),
(31,'黑龙江\0 ',1,NULL,NULL),
(32,'台湾\0',5,NULL,NULL),
(33,'香港\0 ',5,NULL,NULL),
(34,'澳门\0 ',5,NULL,NULL);
不会这是这个\0干的好事吧。。
\0是表示一个特殊字符
在页面上显示会出bug的
var result = request.responseText.parseJSON();
var tSelect=document.createElement("select")
tSelect.setAttribute("id","mapByFirstRegionalismId");
tSelect.setAttribute("name","mapByFirstRegionalismId");
$("first").appendChild(tSelect)
if (result.list.length > 0)
{
for (var i = 0; i < result.list.length; i++)
{
var temp = result.list[i];
txt=document.createTextNode(temp.planceName.replace(/\s/g,''));
opt=document.createElement("option");
opt.setAttribute("value",temp.mapId);
opt.appendChild(txt);
tSelect.appendChild(opt);
}
}
else {
txt=document.createTextNode("请选择");
opt=document.createElement("option");
opt.setAttribute("value","0");
opt.appendChild(txt);
tSelect.appendChild(opt);
}
}
楼主取出的数据是
<select id="mapByFirstRegionalismId" name="mapByFirstRegionalismId" > <option value="1">北京
明显是"北京"后面有不可见字符导致字符串断行.