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>这个标签也消失了。

解决方案 »

  1.   

    str里最后的内容,现在只是:<select id="mapByFirstRegionalismId" name="mapByFirstRegionalismId" > <option value="1">北京标签都没有结束。
    明明有35条件记录的。
      

  2.   

    在循环里alert下str 看看变化
    最后再alert下完整的 是什么结果
      

  3.   

    或者把JSON数据 发上来大家可以试试~。~
      

  4.   


    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;
    }
      

  5.   

    有无回车符,换行符,制表符等不可见字符.这些要删除掉temp.planceName.replace(/\s/g,'')
      

  6.   

    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; }
    试一下
      

  7.   

    35次 : <select id="mapByFirstRegionalismId" name="mapByFirstRegionalismId" > <option value="1">北京 
      

  8.   

    (1,'北京\0',4,NULL,NULL),
      (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干的好事吧。。
      

  9.   


    \0是表示一个特殊字符
    在页面上显示会出bug的
      

  10.   

    function showfirst(request){ 
    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">北京
    明显是"北京"后面有不可见字符导致字符串断行.