一个页面有很多个输入框。要用Ajax来填充数据。<div id="Area1">
   <input type="text" name="a" value="">
   <input type="text" name="a" value="">
   <input type="text" name="a" value="">
   <input type="text" name="a" value="">
</div>
<div id="Area2">
   <input type="text" name="a" value="">
   <input type="text" name="a" value="">
   <input type="text" name="a" value="">
   <input type="text" name="a" value="">
</div>
HTML部分结构如上。分多个大区域,ID为 Area + ID号Ajax会返回一个Json格式的数据。返回以后我要遍历数据,根据每条数据的ID号,把内容填充到相应区域中不为空的那个输入框中去。JS代码如下for (var oIdx in json) {
        var o = json[oIdx];
        
        if (o.location != "none") {
            $("#tag_" + o.ChannelID + "_" + o.location + "_" + o.sort).val(o.tags);
            $("#tag_" + o.ChannelID + "_" + o.location + "_" + o.sort).attr("tagID", o.tagID);
        } else {
            //如果没找到。可能是第一次加载。则进行默认数据加载。
        
            $("#BoxChannel_" + o.ChannelID + " input[value='']").get(0).value = o.tags
        
        } 
   }为什么这样永远只能取到第一个输入框

解决方案 »

  1.   

    楼主调试下
    for (var oIdx in json) {
            var o = json[oIdx];
    看看o变化了没?
      

  2.   

     $.getJSON(url, { 'id': zuid }, function (data) {
                                $.each(data, function (i, item) {
                                    if (i == "context") { document.getElementById("configsms").value = item; }
                                    if (i == "id") { document.getElementById("configsmsid").value = item; }
                                });
                            });
      

  3.   

     你alert()一个 #tag_" + o.ChannelID + "_" + o.location + "_" + o.sort 这个拼出来的ID是不是你想要的,也就是说是不是不重复的
      

  4.   

    也许每次都是指定else语句块的内容呢。这种问题用firebug单步调试就一定能解决啦。楼主加油