今天遇到一个问题 请教高手一段JS代码 急!! 
"+displayname+"  是一个无限增加的队列 数量为 COUNT 原来排列为  
123,234,344,4343,4434,333,....... 现在想变成只显出前三名,从第4名开始,名单都放到一个下拉列表中,实现的效果就是从4343这个名字开始 用一个""查看更多"的文字来表示,鼠标点到这个上面 出现下拉SELECT框,里面出现实时增加的后面的队列 ,当我删除最前面或者在最前面插入一个数的时候,这个下拉列表也会跟着反映,始终保持正确的队列 ,就是队列次序正常,不出错!!
请用JAVASCRIPT编写代码 谢谢! 下面是原来的队列代码:
for(var i=0;i <count;i++) 

var displayname; 
obj = MicUsers.GetObject(i) ; if(usenickname){ 
displayname=obj.nickname; 
}else{ 
displayname=obj.name; 

               this.m.document.writeln(" <font face=\"Wingdings\" color=#00FF00>( </font> <a target=d  href=\"javascript:parent.cs('"+obj.name+"',"+obj.id+")\">"+displayname+" </a>"); 
   
this.m.document.writeln(""); 

解决方案 »

  1.   

    只需要加一个判断即可
    使用
    if(){
    }
    else{
    }
      

  2.   


    <input name="test">
    <span id="span1">&nbsp;</span>
    <script language=javascript>
    function show(){
    var str=document.getElementById("test").value
    var temp=str.split(",")
    var strHTML=""
    if(temp.length>3){
    strHTML=temp[0]+","+temp[1]+","+temp[2]
    strHTML=strHTML+"<select>"
    for(var i=3;i<temp.length;i++)
    {
    strHTML=strHTML+"<option>"+temp[i]+"</option>"
    }
    strHTML=strHTML+"</select>"
    }else{
    for(var i=0;i<temp.length;i++)
    {
    strHTML=strHTML+temp[i]+","
    }
    strHTML=strHTML.replace(/,$/,"")
    }
    document.getElementById("span1").innerHTML=strHTML
    setTimeout("show()",3000)
    }
    show()
    </script>
      

  3.   

    chinmo 说的没有解决问题 但是表示感谢!这位朋友hbhbhbhbhb1021 思路很好 准备加分 !
    我有2个问题 一个是想出现一个查看更多 点上去再显示SELECT 
    第2个是我这里不能用SAPN的方式去显示 刷新也不需要去关心 这个是页面自己定时间刷新的.
    我这里下面提供下我错误的源代码 但是里面缺少函数定义 所以名称写不进SELECT中去. 
    能否帮我看下问题出在哪里代码说明  displayname 就是要显示的名字 是个变量
               count  是要显示的数量 也是变化的 上面的两个变量都是该程序自动判断的 我们可以直接用的
              
               this.m.document.writeln("<SCRIPT>");
    this.m.document.writeln("var timerdisplay = document.getElementById(\"timer\");");
    this.m.document.writeln("timerdisplay.innerHTML=\""+miclisttimer+"\";");
    this.m.document.writeln("var secs = "+miclisttimer+";");
    this.m.document.writeln("function UpdateTimer() {");
    this.m.document.writeln(" secs=secs-1;");
    this.m.document.writeln(" if(secs>0){");
    this.m.document.writeln(" timerdisplay.innerHTML= \"\" + secs + \"\";");
    this.m.document.writeln("   window.setTimeout(\"UpdateTimer()\", 1000);");
    this.m.document.writeln("   }");
    this.m.document.writeln("}");
    this.m.document.writeln("UpdateTimer();"); this.m.document.writeln("function toggle(eid1,eid2) {");
    this.m.document.writeln(" document.getElementById(eid1).style.display='inline';");
    this.m.document.writeln(" document.getElementById(eid2).style.display='none'; ");
    this.m.document.writeln("}");
    this.m.document.writeln("<"+"/"+"script>");for(var i=0;i<count;i++)
    {
    var displayname;
    obj = MicUsers.GetObject(i) ; if(usenickname){
    displayname=obj.nickname;
    }else{
    displayname=obj.name;
    }
           
                   if (i<0){
                   this.m.document.writeln("<font face=\"Wingdings\" color=#00FF00>(</font><a target=d href=\"javascript:parent.cs('"+obj.name+"',"+obj.id+")\">"+displayname+"</a>");
                          }
                      else{
                   this.m.document.writeln("<label id=moremic2  onmouseover=\"pausemsrefresh=true;toggle('moremic1','moremic2')\"  ><a href=\"#\" onclick=\"pausemsrefresh=true;toggle('moremic1','moremic2')\">[ 查看更多 ]</a></label><label id=moremic1 style=\"DISPLAY:none\"> <select size=\"1\" onmouseout=\"pausemsrefresh=false;toggle('moremic2','moremic1')\" style=\"width:120px\" onchange=\"javascript:parent.cs(this.options[this.selectedIndex].text),this.value\"><option value=\"\"></option></select></label>");
                          }
      

    }this.m.document.writeln("</div></p></body></html>");
    this.m.document.close();
    这里的思路是上面这样的 但是代码错误 能帮我找找问题在哪里吗?急!