//创建表格
function createTable(dataT,div,tableName,c,oI)
{
    var o = document.getElementById(div);
    var table =document.createElement("table");
    var tbody = document.createElement("tbody");
    table.border = 1;
    table.id =
    o.innerHTML ="";
    for(var i=0;i<dataT.Rows.length;i++)
    {
        var tr = document.createElement("tr");
        var row = dataT.Rows[i];
        for(x in c){
            var td = document.createElement("td"); 
         ....
         ....
         如何将otherInner 中的值{0} 替换掉 
            td.innerHTML = row[c[x]];
         ...
         ....            td.style.color = "#FF0000"; 
            tr.appendChild(td); 
        }
        tbody.appendChild(tr); 
    }
    table.appendChild(tbody);
    o.appendChild(table);
}
外面调用  
    var cells =['userID','blDate','blName'];
    var otherInner = ["","","<a href='../UploadFile-UserCQ/{0}'>{0}</a>"];
    createTable(table,'usersCQInfo','tableList',cells,otherInner);就是创建一个表格不过表格列值可能还有链接之类的。。要如何处理。。
我想到了就是 {0} 替换。。不知道怎么写?
本人刚学JS。。在线等。

解决方案 »

  1.   

    直接在传入otherInner的时候就将{0}替换好,不就行了,不必等在组装table的时候,在去替换!
      

  2.   

    给你个例子吧,不明白的地方问我<html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
            <META http-equiv="Content-Style-Type" content="text/css">
         
        </head>
        <script language=javascript>
            var TH_HEIGHT="20px";
            var THCOLOR="#ffff99";
            var THBGCOLOR= "#ccecff";
            var NEW_COLOR="#ffffff";
            var lastObj;
            function createEventTable() {
                var newRow,col1,col2,col3;
                var ln = document.getElementById("tb1").rows.length;
                if( ln > 0){
                    for(var i=0; i<ln; i++){
                        if(document.getElementById("tb1").rows.length <= 0)break;
                        document.getElementById("tb1").deleteRow(-1);
                    }
                }
                for(var colno=0; colno<15; colno++){    
                    newRow = document.getElementById("tb1").insertRow(-1); //增加行
                    newRow.id = 'r'+colno;
                    document.getElementById("r"+colno).height = TH_HEIGHT; //设置行属性
                    document.getElementById("r"+colno).bgColor = THCOLOR;
                    col1=newRow.insertCell(0);  //添加列
                    col2=newRow.insertCell(1);
                    col3=newRow.insertCell(2);
                    col1.id="col1"+colno   //设置列属性
                    col2.id = "col2"+colno;
                    col3.id = "col3"+colno;
                    col1.innerText = "列一"+colno;
                    col2.innerText = "列二"+colno;
                    col3.innerText = "列三"+colno;
        
                }
            }
            window.onload=function(){
                createEventTable(); 
            }    </script>
        <body >
            <TABLE  cellSpacing="0" borderColorDark="black" cellPadding="1" borderColorLight="black"  border="1" style="position:absolute;left:50px;z-index:1">
                <thead>
                <COLGROUP>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                <TR height="20px" bgColor="#ccecff" id="sss">
                    <TH width="36" >列1</TH>
                    <TH width="36" >列2</TH>
                    <TH width="36" >列3</TH>
                </TR>
            </thead>
            <TBODY id="tb1">
            </TBODY>
        </TABLE></body>
    </html>
      

  3.   


    在上面 设置列属性 的位置,加入你要用的scr,或者封装成方法均可
    col1.src="xxx";
    这样
      

  4.   

    我想问一下。就是 后台返回一个DataTable ,由js 动态生成一个Table这种情况 如果表格中的列值还有相关操作,比如:按钮啊。链接啊。要如何处理。要怎么处理会比较好。
      

  5.   

    方法二:
    在你的方法中加入  td.src=""  就行了
      

  6.   

    我在源代基础上。if (oI[x]!="") {
       td.innerHTML = oI[x].replace("{0}",row[c[x]]); }
      else {
     td.innerHTML = row[c[x]]; }外面  var cells =['userID','blDate','blName'];
         var otherInner = ["","","<a href='../UploadFile-UserCQ/{0}'>{0}</a>"];
        createTable(table,'usersCQInfo','tableList',cells,otherInner);
     可是发现替换了一个{0},,还有一个{0} 没替换?
    不知怎么回事?
      

  7.   

    还有一个问题就是:比如我要加一列操作按钮列(如:增加,删除,查看...)如何改写这个function createTable(.....)能不能 有一种写法  function createTable(dataT,div,tableName,c,oI,fun)再加一个function ..而这个function 在外面定义.要怎么写...刚学JS,好多东西不会。 
      

  8.   

    随便弄的几个属性,你参考下<html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
            <META http-equiv="Content-Style-Type" content="text/css">
         
        </head>
        <script language=javascript>
            var TH_HEIGHT="20px";
            var THCOLOR="#ffff99";
            var THBGCOLOR= "#ccecff";
            var NEW_COLOR="#ffffff";
            var lastObj;
            var table=function(rows,src,fun){
            var newRow,col1,col2,col3;
                var ln = document.getElementById("tb1").rows.length;
                if( ln > 0){
                    for(var i=0; i<ln; i++){
                        if(document.getElementById("tb1").rows.length <= 0)break;
                        document.getElementById("tb1").deleteRow(-1);
                    }
                }
                for(var colno=0; colno<rows; colno++){    
                    newRow = document.getElementById("tb1").insertRow(-1);
                    newRow.id = 'r'+colno;
                    document.getElementById("r"+colno).height = TH_HEIGHT;
                    document.getElementById("r"+colno).bgColor = THCOLOR;
                    col1=newRow.insertCell(0);
                    col2=newRow.insertCell(1);
                    col3=newRow.insertCell(2);
                    col1.id="col1"+colno
                    col2.id = "col2"+colno;
                    col3.id = "col3"+colno;
                    col1.innerText = "列一"+colno;
                    col2.innerText = "列二"+colno;
                    col3.innerText = "列三"+colno;
                   col1.onclick=function(){
                      return jump.call(this,src);
                   }
                   col2.onclick=fun;
                }
                
            }
        function jump(href){
           location.href=href;
    }
            window.onload=function(){
                //createEventTable();
              var s=new  table(2,"http://www.baidu.com",function(){alert()});
            }    </script>
        <body >
            <TABLE  cellSpacing="0" borderColorDark="black" cellPadding="1" borderColorLight="black"  border="1" style="position:absolute;left:50px;z-index:1">
                <thead>
                <COLGROUP>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                <TR height="20px" bgColor="#ccecff" id="sss">
                    <TH width="36" >列1</TH>
                    <TH width="36" >列2</TH>
                    <TH width="36" >列3</TH>
                </TR>
            </thead>
            <TBODY id="tb1">
            </TBODY>
        </TABLE></body>
    </html>
      

  9.   

    你也可以类似定义自己的insertrow方法,需要什么属性就自己创造
      

  10.   

    给你个变type的例子,这个例子创造的是button,你也可以自己定义,在构造函数里
    <html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
            <META http-equiv="Content-Style-Type" content="text/css">
         
        </head>
        <script language=javascript>
            var TH_HEIGHT="20px";
            var THCOLOR="#ffff99";
            var THBGCOLOR= "#ccecff";
            var NEW_COLOR="#ffffff";
            var lastObj;
            var table=function(name,rows,type){
            var newRow,col1,col2,col3;
                var ln = document.getElementById("tb1").rows.length;
                if( ln > 0){
                    for(var i=0; i<ln; i++){
                        if(document.getElementById("tb1").rows.length <= 0)break;
                        document.getElementById("tb1").deleteRow(-1);
                    }
                }
                for(var colno=0; colno<rows; colno++){    
                    newRow = document.getElementById("tb1").insertRow(-1);
                    newRow.id = 'r'+colno;
                    document.getElementById("r"+colno).height = TH_HEIGHT;
                    document.getElementById("r"+colno).bgColor = THCOLOR;
                    col1=newRow.insertCell(0);
                    col2=newRow.insertCell(1);
                    col3=newRow.insertCell(2);
                    col1.id="col1"+colno
                    col2.id = "col2"+colno;
                    col3.id = "col3"+colno;
                    col1.innerHTML='<input type='+type+' value='+name+'>'
                   /* col1.innerHTML = "列一"+colno;*/
                    col2.innerHTML = '<input type='+type+' value='+name+'>'
                    col3.innerHTML = '<input type='+type+' value='+name+'>'
               
                }
                
            }
        function jump(href){
           location.href=href;
    }
            window.onload=function(){          var s=new  table("aaa",2,"button");
            }    </script>
        <body >
            <TABLE  cellSpacing="0" borderColorDark="black" cellPadding="1" borderColorLight="black"  border="1" style="position:absolute;left:50px;z-index:1">
                <thead>
                <COLGROUP>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                <TR height="20px" bgColor="#ccecff" id="sss">
                    <TH width="36" >列1</TH>
                    <TH width="36" >列2</TH>
                    <TH width="36" >列3</TH>
                </TR>
            </thead>
            <TBODY id="tb1">
            </TBODY>
        </TABLE></body>
    </html>
      

  11.   

    关于如何创建表格的问题,网上的资料真的太多了,要记得一定要创建tbody就行了,要不然没有办法显示