下面是我的代码:后台的数据出来了,但是是一个整字符串,不是想要的单个的比如:id有10个:1,2,3....结果出来的就是一个123字符串,不知道问题出在哪里function subs(bid) //函数名
{

   $.ajax({  //ajax方法   
type:"post",   
  dataType:"xml",      
         url:"<%=request.getContextPath()%>/MeaBackConsTeam.do",
data:{bid:bid },
 success:function(data){

        $(data).find("root").each(function(){         

 var team_id=$(this).children("consTeamId").text();          //节点值
 var team_name=$(this).children("consTeamName").text();  //节点值
  $('#selconsTeam').append("<option value='" + team_id + "'>" + team_name + "</option>"); })
 }
     });
}

解决方案 »

  1.   

    先输出你后台返回来的是xml的内容,是正确的xml字符串?
      

  2.   

    package com.longhao.action.meaShare;import java.io.PrintWriter;
    import java.util.List;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;import com.longhao.daoimpl.pro.ProConstDAO;
    import com.longhao.model.pro.ConstructionTeam;/**
     *  *
     */
    public class MeaBackConsTeamAction extends Action{ private ConstructionTeam consTeam;
    private ProConstDAO proDAO;

    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

    response.setContentType("text/xml;charset=UTF-8");
    PrintWriter out = response.getWriter();

    String bid=request.getParameter("bid");

    System.out.println("标段"+bid);
    proDAO=new ProConstDAO();

    List<ConstructionTeam> constList=proDAO.findByBidsegmentId(Long.parseLong(bid));
    //String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
    //out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
    out.println("<root>");
    if(constList!=null)
    {
    for(int i=0;i<constList.size();i++)
    {
    consTeam=new ConstructionTeam();
    consTeam=(ConstructionTeam)constList.get(i);
    //out.println("<node id="+i+">");
    out.println("<consTeamId> " + consTeam.getId() + " </consTeamId>");
    out.println("<consTeamName> " + consTeam.getConsTName() + " </consTeamName>");
    //out.println("</node>");
    }

    }

    out.println("</root>");
    return null;
    }


    }
    把后台代码也贴上
      

  3.   

    贴代码没用,需要从浏览器端看从服务器返回来的数据才有用,例如你的这个没有使用CDATA,中间出现特殊字符会把xml给破坏的。所以才需要看你服务器端返回来的数据。
      

  4.   


    我用alert弹出数据都是正常的数据没有特殊字符,但就是把值给串起来了
      

  5.   

    建议使用json,后台将List转换成json格式传到前台,然后在前台通过js将传过去的json转换成js对象数组,这样使用起来就非常方便了
      

  6.   

    我感觉是这样的,你后台循环把所有值都输出了,但是前台得到的时候,consTeamId这个id是重复的,不能唯一确定一个id,所以你得到的时候有可能练成一体了
      

  7.   

    没有你那么复杂吧?
    <tr>
               <td>游戏种类</td>
                    <td>
                    <input class="easyui-combobox" 
    name="gameDto.gameTypeId"
    url="gameInfo!findGameTypeInfo.action" 
    valueField="gameTypeId" 
    textField="gameTypeName" 
    multiple="true" 
    panelHeight="auto"/>
             </td>
               </tr>
      

  8.   

    谢谢各位,我自己解决了,
    jquery把值给串起来了,主要的问题出在后台输出xml,因为只有一个root根节,循环root只有一次,jquery就很负责的把所有值给拿出来,并串起来;如果循环consTeamId节点话,循环有多次,但问题是自己循环自己节点数量可以,但是数值却得不到,解决的方法就是在root与consTeamId之间加一个node的父节点,node也要与consTeamId一起循环,如此在页面就循环node就可以了