当前位置: 代码迷 >> JavaScript >> js动态建表,分页有关问题,求高手解答
  详细解决方案

js动态建表,分页有关问题,求高手解答

热度:242   发布时间:2012-07-28 12:25:13.0
js动态建表,分页问题,求高手解答!
例如
var tb 
for(var i=0;i<ditu1.length;i++)
{
  //动态生成表格
  tb+="<table>"
  tb+="<tr><td><input id='f"+i+"' type='text'"</td></tr>";
  tb+="<tr><td>"+code[0]+","+code[1]+""+'</td></tr>';
  tb+="</table>"
}

retrun tb

如何实现分页!!

------解决方案--------------------
改了下。
HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>分页</title>
</head>

<body>
<script>
function Request(strName)
{
    var strHref = window.document.location.href;
    var intPos = strHref.indexOf("?");
    var strRight = strHref.substr(intPos + 1);
    var arrTmp = strRight.split("&");
    for(var i = 0; i < arrTmp.length; i++)
    {
        var arrTemp = arrTmp[i].split("=");
        if(arrTemp[0].toUpperCase() == strName.toUpperCase()) return arrTemp[1];
    }
    return "";
}
var tb="";
var n=5;//每页5行
if(Request("p")==null || Request("p")=="")//第一次没有传第几页
    page=0;//初始化
else
    page=Request("p");//有值取第几页

var code =new Array('1','2','3','4','5','6','7');
var allpage=parseInt(code.length/n);
if(allpage<code.length/n)
{
    allpage+=1;
}

var wpage,pcount;
if(page>=1)
{
    wp=(page-1)*n;//(page-1)*n第几页开始数,(page-1)*n+n开始数加上每页数
    pcount=wp+n;
}
else
{
    wp=page*n;//(page)*n第几页开始数,(page)*n+n开始数加上每页数
    pcount=wp+n;
    page=1;//设置传递时第一页显示当前页面
}
//alert(allpage+"-"+page);
for(var i=wp;i<pcount;i++)
{
  if(code[i]==null)//如果值为空则不输出
    break;
  tb+="<table>"
  tb+="<tr><td><input id='f"+i+"' type='text'/></td></tr>";
  tb+="<tr><td>"+code[i]+"</td></tr>";
  tb+="</table>";
}
function setpage(allpage,page){//获取分页、当前页
    palist="<div>";
    //alert(page);
    for(i=0;i<allpage;i++){    
        if(parseInt(i+1)!=page)
            palist+="<a href='?p="+ parseInt(i+1)+"'>"+parseInt(i+1)+"</a>";
        else
            palist+="<em>"+ parseInt(i+1) +"</em>"
    }
    return palist+="</div>";    
}
var ouput=tb+setpage(allpage,page);
document.write(ouput);
</script>
</body>
</html>

------解决方案--------------------
不知道是不是你要的效果!
HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>分页</title>
<style>
.h{width:100px;text-align:center}
</style>
</head>

<body>
<table width="100" border="0" id="tablelist" style="display:none;">
    <thead><tr><th class="h">标题</th></tr></thead>
    <tr><td>测试分页1</td></tr>
    <tr><td>测试分页2</td></tr>
    <tr><td>测试分页3</td></tr>
    <tr><td>测试分页4</td></tr>
    <tr><td>测试分页5</td></tr>
    <tr><td>测试分页6</td></tr>
    <tr><td>测试分页7</td></tr>
</table>


  <script>
function Request(strName)
{
    var strHref = window.document.location.href;
    var intPos = strHref.indexOf("?");
    var strRight = strHref.substr(intPos + 1);
    var arrTmp = strRight.split("&");
    for(var i = 0; i < arrTmp.length; i++)
    {
        var arrTemp = arrTmp[i].split("=");
        if(arrTemp[0].toUpperCase() == strName.toUpperCase()) return arrTemp[1];
    }
    return "";
}
var tb="";
var n=5;//每页5行
if(Request("p")==null || Request("p")=="")//第一次没有传第几页
    page=0;//初始化
else
    page=Request("p");//有值取第几页
    
    
var tablist=document.getElementById("tablelist").getElementsByTagName('tr');//遍历所有tr
var trlist=tablist[1].parentNode.innerHTML;//获取所有非标题的TR
var trtitle=tablist[0].parentNode.innerHTML;//获取第一个Tr作为标题


var trarray=trlist.split('</tr>');
var showtr=new Array();
var ds="";
for(i=0;i<trarray.length-1;i++)
{
    showtr[i]=trarray[i]+"</tr>";
    ds+= trarray[i]+"</tr>";
}



var code =showtr;
//alert(trtitle);

for(i=1;i<tablist;i++)
{
    tablist[0].parentNode.innerHTML
}

var allpage=parseInt(code.length/n);
if(allpage<code.length/n)
{
    allpage+=1;
}

var wpage,pcount;
if(page>=1)
{
    wp=(page-1)*n;//(page-1)*n第几页开始数,(page-1)*n+n开始数加上每页数
    pcount=wp+n;
}
else
{
    wp=page*n;//(page)*n第几页开始数,(page)*n+n开始数加上每页数
    pcount=wp+n;
    page=1;//设置传递时第一页显示当前页面
}
//alert(allpage+"-"+page);
tb+="<table width='100'>"
tb+=trtitle;
for(var i=wp;i<pcount;i++)
{
  if(code[i]==null)//如果值为空则不输出
    break;
  tb+=code[i];
  
}
tb+="</table>";
function setpage(allpage,page){//获取分页、当前页
    palist="<div>";
    //alert(page);
    for(i=0;i<allpage;i++){    
        if(parseInt(i+1)!=page)
            palist+="<a href='?p="+ parseInt(i+1)+"'>"+parseInt(i+1)+"</a>";
        else
            palist+="<em>"+ parseInt(i+1) +"</em>"
    }
    return palist+="</div>";    
}
var ouput=tb+setpage(allpage,page);
document.write(ouput);
</script>
</body>
</html>
 
  相关解决方案