把记录放JS数组里
<script language="javascript">
<!--
var records = [ "第一条", "第二条", "第三条", "第四条", "第五条", "第六条", "第七条", "第八条", "第九条", "第十条"];
var ids = "";while(1)
{
var id = parseInt(Math.random()*9) + "";
if( ids.indexOf(id) == -1 )
ids += id;
if(ids.length>2)
break;
}
for(i=0;i<ids.length;i++)
{
rec = records[ids.charAt(i)];
document.write(rec);
document.write("<br/>");
}
//-->
</script>

解决方案 »

  1.   

    謝謝。樓上請到http://community.csdn.net/Expert/topic/4120/4120209.xml?temp=.6213343接分
      

  2.   


    洗牌算法。
    一楼的代码没有考虑random()为1的情况,
    另外,如果显示100条记录里的99条的话,将会有效率问题。
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>JK:支持民族工业,尽量少买X货</title>
    </head><body>
    <pre>
    洗牌算法:
    部分代码来自:
    http://community.csdn.net/Expert/topic/3858/3858964.xml?temp=.5909693
    fason的回贴。</pre><script language="JavaScript">
    <!--function getRandomArray(m,n)   //得到m张牌里的n张牌 (m>=n>0)
    {
    if(n==null || n==m )
    return getRandomPlayCard(m);
    var array1=new Array(m);
    for(var i=0;i<m;i++)
    array1[i]=i;
    var m2=m-0.00001;
    for(var i=0;i<n;i++)
    {
    var rnd=Math.floor(Math.random()*m2);
    var swap=array1[i];array1[i]=array1[rnd];array1[rnd]=swap;
    }
    return(array1.slice(0,n));
    }
    function getRandomPlayCard(m) //洗牌
    {
    var array1=new Array(m);
    for(var i=0;i<m;i++){
    var rnd=Math.floor(Math.random()*(i+0.99999))
    array1[i]=array1[rnd];
    array1[rnd]=i;
    }
    return array1;
    }
    document.write(getRandomPlayCard(100)+"<br><br>"+getRandomArray(100,5));--> 
    </script></body>
    </html>