日期:2014-05-16  浏览次数:20457 次

JS使用innerhtml的问题
我想用
var   Row   =   mytable.insertRow();
Row.insertCell().innerHTML= " ";
来插入一个列表框,这个列表框要取数据库的一个字段的值,我用这样的代码试了不行,请问还有没有别的方法
Row.insertCell().innerHTML= " <select   name=\ "measure_dot\ "   value=\ "cldhList\ "   style=\ "width:106\ "> <option   value=\ "cldhList\ "> <\/select> ";

对cldhList的定义:
List   cldhList   =   collectcldhList(request);          
request.setAttribute( "cldhList ",cldhList);
private   List   collectcldhList(HttpServletRequest   request)   throws   Exception  
{
        DBOperationForSHSInterface   taskdataBean=getTaskdataService();
        List   cldhList=taskdataBean.searchByHQL( "select   hpdata_task   from   taskdataEntity   as   hpdata_task ");
        return   cldhList;
}

------解决方案--------------------
这样写是可以的 可能是你写得不太对 我改了一下
var Row = mytable.insertRow();
Row.insertCell().innerHTML= " ";
Row.insertCell().innerHTML= " <select name=\ "measure_dot\ " value=\ "cldhList\ " style=\ "width:106\ "> <option value=\ "cldhList\ "> one option </option> </select> ";
------解决方案--------------------
两个办法。
如果你要用innerHTML,那就动态的把数据库读出的值连接到你innerHTML字符串的相应位置。
不过似乎这样有点麻烦
另一个办法。
var Row = mytable.insertRow();
Row.insertCell().innerHTML= " ";
Row.insertCell().innerHTML= " <select id=testSelect name=\ "measure_dot\ " value=\ "cldhList\ " style=\ "width:106\ "> </select> ";
for var(i=0;i <dataRead.rows.length;i++) //dataRead是你数据库中读出的数据集之类的东西
{
var oOption=document.createElement( "option ")
document.getElementById( "testSelect ").appendChild(oOption);
oOption.value=abc[i] //你从数据库读出的值
oOption.innerHTML=def[i] //还是你从数据库读出的显示值

}


没有测试,不过基本就是这样了