我的功能是为了根据得到的count动态创建表格,并且在表格内根据sip和sret等参数动态显示表格中的图片及文字。
为了动态创建表格,我用了一个for循环,为了使第二行以后的表格中的文本能动态显示我只好改函数中的行的id,因为我发现不改的话我每次循环都只是刷新了第一行的文本,后面几行根本不显示文本。
至于图片的动态显示,目前我还没考虑到,我最后的几个if else语句好像不起作用。我是应届毕业生。这是第一个任务。可这个页面我都快弄了一个月了。都让我有辞职的冲动了。

解决方案 »

  1.   

    function addTable(sip,sret,sip1,sret1,i)//这个函数中的sip传了参数
    函数里面没有用到呀!!
    什么用的??
      

  2.   

    不好意思,
    function returnstr1()
    {  
       if((sret==0)||(sret==1))   
       return '服务器'+ip1;
      else
       return '未添加服务器' ;
    id=setTimeout("returnstr1()",500 );
    }
    中的ip1其实应该是sip1(我忘了改过来),我用sip是为了使后面的各个表格能独立接受参数而改变各自文本中的ip地址字符。
      

  3.   

    document.all.p1.id="p5";
     document.all.p2.id="p6";
     document.all.p3.id="p7";
     document.all.p4.id="p8";
     document.all.p5.innerText=returnstr1();
     document.all.p6.innerText=returnstr2(); 
     document.all.p7.innerText=returnstr3();
     document.all.p8.innerText=returnstr4();
    ==>//是不是要这样改动
     document.all.p1.id=sip;
     document.all.p2.id=sret;
     document.all.p3.id=sip1;
     document.all.p4.id=sret1;
     document.getElementById(sip).innerText=returnstr1();
     document.getElementById(sret).innerText=returnstr2();
     document.getElementById(sip1).innerText=returnstr3();
     document.getElementById(sret1).innerText=returnstr4();
      

  4.   

    s*数值传递的问题(光加eval不行的那个)能不能解决啊?这样我也好调试啊
      

  5.   

    ==>替换后就可以了! 
    document.all.p1.id=sip;
     document.all.p2.id=sret;
     document.all.p3.id=sip1;
     document.all.p4.id=sret1;
     document.getElementById(sip).innerText=returnstr1();
     document.getElementById(sret).innerText=returnstr2();
     document.getElementById(sip1).innerText=returnstr3();
     document.getElementById(sret1).innerText=returnstr4();
      

  6.   

    //为什么要一次建两个table呢,一次一个不行吗?好像就是两个table的图片不一样  
    var str="<td height='179' valign='top' bgcolor='#00FFFF'>";
       str=str+"<p align='center' class='style3'>&nbsp;</p>";
       str=str+"<p align='center' class='style3' id=p1></p>";
       str=str+"<p align='center' class='style3' id=p2></p>";
       str=str+"<p align='center' class='style3'>";
       str=str+"<img src='test5.jpg' name='img3' id='img3' width=93 height=70>";
       str=str+"</p>";
        str=str+"<p>&nbsp;</p></td>";
       var str1="<td height='179' valign='top' bgcolor='#00FFFF'>";
       str1=str1+"<p align='center' class='style3'>&nbsp;</p>";
       str1=str1+"<p align='center' class='style3' id=p3 name=p3></p>";
       str1=str1+"<p align='center' class='style3' id=p4></p>";
       str1=str1+"<p align='center' class='style3'>";
       str1=str1+"<img src='test6.jpg' name='img4' id='img4' width=93 height=70>";
       str1=str1+"</p>";
       str1=str1+"<p>&nbsp;</p></td>";
      

  7.   

    用document.all.p1.id=sip;
     document.all.p2.id=sret;
     document.all.p3.id=sip1;
     document.all.p4.id=sret1;
     document.getElementById(sip).innerText=returnstr1();
     document.getElementById(sret).innerText=returnstr2();
     document.getElementById(sip1).innerText=returnstr3();
     document.getElementById(sret1).innerText=returnstr4();替换后我在  addTable(s1,s2,s3,s4,i);后面用document.write(s2)发现打出的还是字符sret*啊。这样后面的if else语句就不能正确执行了。
    另外,我原来有一个地方考虑错了,需要更正
      var   s1="sip"+i;
      var   s2="sret"+i;
      var   s3="sip"+(i+1);
      var   s4="sret"+(i+1);
    更换为
      var   s1="sip"+2*i;
      var   s2="sret"+2*i;
      var   s3="sip"+(2*i+1);
      var   s4="sret"+(2*i+1);
    我调试后发现,最顶端的sret的值并不是通过S*传入addtable然后再传给returnstr*(),而是直接传给returnstr*()的,因为我刚好在returnstr*()中也用了sret作为参数名。这样从第二行开始就都是照搬了第一行的显示。我把returnstr*()中的参数改了,果然是没有正确参数传过来了。传过来的可能是字符,所以结果都显示为undefined(也就是S*传过来的变量不是1和0而是字符)。还有什么办法解决把sip*和sret*的值传给S*么?
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题文档</title>
    </head><SCRIPT language="javascript">
    var sip0=1;
    var sret0=1;
    var sip1=1;
    var sret1=1;
    var count=7;//试验用
    var sret=1;
    var ip1=1;
    var ip2=1;
    var fip;
    var fret;
    var fip1;
    var fret1;
    </SCRIPT><BODY >
    <div id=mydiv align="center" style="width:566;height:198;"></div>
    <!--<INPUT TYPE = "button" VALUE = "AddTable" onclick = "addTable()" ID=Button1>-->
    <script>function addTable(fip,fret,fip1,fret1,f){   var tb1 = document.createElement("table");
       tb1.border="1px";
       tb1.width="564";
       tb1.height="196";
       var m;
       var row1 = tb1.insertRow(); 
       var cell1=row1.insertCell();
       var cell2=row1.insertCell();
       mydiv.appendChild(tb1);
       /*var htm = "&nbsp;<\script language=javascript defer>";
       htm = htm + "function test(){alert('hello,world!');}";
       htm = htm + "test();";
       htm = htm + "<\/script>";*/
       var str="<td height='179' valign='top' bgcolor='#00FFFF'>";
       str=str+"<p align='center' class='style3'>&nbsp;</p>";
       str=str+"<p align='center' class='style3' id=p1></p>";
       str=str+"<p align='center' class='style3' id=p2></p>";
       str=str+"<p align='center' class='style3'>";
       str=str+"<img src='test5.jpg' name='img3' id='img3' width=93 height=70>";
       str=str+"</p>";
        str=str+"<p>&nbsp;</p></td>";
       var str1="<td height='179' valign='top' bgcolor='#00FFFF'>";
       str1=str1+"<p align='center' class='style3'>&nbsp;</p>";
       str1=str1+"<p align='center' class='style3' id=p3 name=p3></p>";
       str1=str1+"<p align='center' class='style3' id=p4></p>";
       str1=str1+"<p align='center' class='style3'>";
       str1=str1+"<img src='test6.jpg' name='img4' id='img4' width=93 height=70>";
       str1=str1+"</p>";
       str1=str1+"<p>&nbsp;</p></td>";
       cell1.innerHTML=str;
        document.all.p1.innerText=returnstr1(fret,fip);
        document.all.p2.innerText=returnstr2(fret);
       cell2.innerHTML=str1;
      
      
     document.all.p3.innerText=returnstr3(fret1,fip1);
     document.all.p4.innerText=returnstr4(fret1); m=f*4+1;
     document.all.p1.id=fip;
     document.all.p2.id=fret;
     document.all.p3.id=fip1;
     document.all.p4.id=fret1;
     document.getElementById(fip).innerText=returnstr1(fret,fip);
     document.getElementById(fret).innerText=returnstr2(fret);
     document.getElementById(fip1).innerText=returnstr3(fret1,fip1);
     document.getElementById(fret1).innerText=returnstr4(fret1);
     
    }if(count!=0)
    { for(i=0;i<(count/2);i++)
      {
      var   s1="sip"+2*i;
      var   s2="sret"+2*i;
      var   s3="sip"+(2*i+1);
      var   s4="sret"+(2*i+1);
       
      addTable(s1,s2,s3,s4,i); 
        if(s2==0)
       {
          document.all.img3.src="test1.jpg";
       }
       else if(s2==1)
       {
          document.all.img3.src="test2.jpg";
       }
       else
       {
          document.all.img3.src="test7.jpg";
       }
       if(s4==0)
       {
          document.all.img4.src="test1.jpg";
       }
       else if(s4==1)
       {
          document.all.img4.src="test2.jpg";
       }
       else
       {
          document.all.img4.src="test7.jpg";
       }
       }
     }
     function returnstr1(fret,fip)
    {  
       if((fret==0)||(fret==1))   
       return '服务器'+fip;
      else
       return '未添加服务器' ;
    id=setTimeout("returnstr1()",500 );
    }
    function returnstr2(fret)
    {   if(fret==0)   
       return  '连接失败!' ;
       else if(fret==1)
       return '连接成功';
     id=setTimeout("returnstr2()",500 );  
    }
    function returnstr3(fret1,fip1)
    {  
       if((fret1==0)||(fret1==1))   
       return '服务器'+fip1;
      else
       return'未添加服务器' ;
    id=setTimeout("returnstr3()",500 );
    }
    function returnstr4(fret1)
    {   if(fret1==0)   
       return  '连接失败!'; 
       else if(fret1==1)
       return '连接成功';
     
    }
    </SCRIPT></body>
    </html>
      

  8.   

    <script language="javascript">
    function Init()
    {
    var count=7;//试验用
    if(count!=0)

      var i;
      for(i=0;i<(count/2);i++)
      {
         returnstr1=function(fret,fip)
            {  return (fret==0)||(fret==1)?('服务器'+fip):'未添加服务器' } 
          returnstr2=function(fret)
            {    return  (fret==0)?'连接失败!':'连接成功' }
         imgsrc1=function(fret,fip)
           {   return  (i%2==0)?('test1.jpg'):('test2.jpg')  }
         imgsrc2=function(fret,fip)
           {  return (i%2==0)?('test3.jpg'):('test4.jpg')}
         addTable=function(fip,fret,f)
         {
           var tb1 = document.createElement("table");
          tb1.border="1px";
          tb1.width="564";
          tb1.height="196";
          var m;
          var row1 = tb1.insertRow(); 
          var cell1=row1.insertCell();
          var cell2=row1.insertCell();
         document.all.mydiv.appendChild(tb1);
          var str="<td height='179' valign='top' bgcolor='#00FFFF'>";
         str=str+"<p align='center' class='style3'>&nbsp;</p>";
         str=str+"<p align='center' class='style3' id=p1>"+returnstr1(fip,fret)+"</p>";
         str=str+"<p align='center' class='style3' id=p2>"+returnstr2(fip,fret)+"</p>";
         str=str+"<p align='center' class='style3'>";
         str=str+"<img src="+imgsrc1(fip,fret)+"name='img3' id='img3' width=93 height=70>";
         str=str+"</p>";
         str=str+"<p>&nbsp;</p></td>";
         var str1="<td height='179' valign='top' bgcolor='#00FFFF'>";
         str1=str1+"<p align='center' class='style3'>&nbsp;</p>";
          str1=str1+"<p align='center' class='style3' id=p3 name=p3>"+returnstr1(fip,fret)+"</p>";
         str1=str1+"<p align='center' class='style3' id=p4>"+returnstr1(fip,fret)+"</p>";
         str1=str1+"<p align='center' class='style3'>";
         str1=str1+"<img src="+imgsrc2(fip,fret)+" name='img4' id='img4' width=93 height=70>";
         str1=str1+"</p>";
         str1=str1+"<p>&nbsp;</p></td>";
         cell1.innerHTML=str;
         cell2.innerHTML=str1;
         }
         addTable(1,1,5);
      }  }
     }
    </SCRIPT>
    <body onload=Init()>
    <div id=mydiv align="center" style="width:566;height:198;">
    </div>
    </body>
      

  9.   

    你可能误会我的意图了,图片并不是根据i的奇偶性来显示的,每一个图片每一个文本显示都是由一个独立参数来控制(文本是由sip*和sret*控制,图片根据sret*的值显示)。我在后面添了几个if else就是为了通过参数sret判断来显示不同的图片(图片分三种,成功,失败,未添加)。
    昨天我看过你的代码,我考虑自己先想想,看能不能想出来。问多了怕你也烦,呵呵。后来我就想通过jsp语句实现数值传递,因为我这页面最后肯定得做成jsp页面。我对jsp也是第一次接触,
    这周末要交任务了,郁闷中...
    你还有办法的话,再帮忙想想。最后预祝假期愉快。
      

  10.   

    imgsrc2=function(fret,fip,fcon,fon2...)//参数也可以改动的呀2个3个,4个
           {  if (fret==1)...else if() {} else if() ..//改成你的函数条件呀}
      addTable=function(fip,fret,f)//参数不够就自己加吧
      

  11.   

    还有一个老问题,我有很多对参数,以sipi和sreti形式给出(每组对应一个单元格),怎么作为参数传给addTable呢?按下面这样得不到sip*和sret*的值啊?
    for(i=0;i<(count/2);i++)
      {
      var   s1="sip"+2*i;
      var   s2="sret"+2*i;
      var   s3="sip"+(2*i+1);
      var   s4="sret"+(2*i+1);}
      

  12.   


    count=7;
    for(i=0;i<(count/2);i++)
      {
      var   s1="sip"+2*i;
      alert(s1);;//不是sip0,sip2,sip4..吗?你需要什么呀  var   s2="sret"+2*i;
      var   s3="sip"+(2*i+1);
      var   s4="sret"+(2*i+1);
      }
    </script>
      

  13.   

    我要的是sret0,sret2,sret4的值啊,否则的话用s2作为addTable的参数,那在addTable看来,s2所传过来的sret0,sret2,sret4就都是字符变量。所得的结果就都是第三种可能(fret!=0&&fret!=1时)。
      

  14.   

    <script>
    count=7;
    for(i=0;i<(count/2);i++)
      {
      var   s1="sip"+2*i;
    //不是sip0,sip2,sip4..吗?你需要什么呀  var   s2="sret"+2*i; 
      var s2value=s2.substr(4,s2.length-3);//是不是要这个值0,2,4
       alert(s2value)
      var   s3="sip"+(2*i+1);
      var   s4="sret"+(2*i+1);
      }
    </script>
      

  15.   

    不是啊,是sret*所代表的值。比如,我在前面定义了var sret0=1;var sret2=0;然后我在addTable里面要用sret0的值,但是不能直接用sret0,因为后面第二次for循环还要再调用addTable,那时候用的参数是sret2。所以考虑每次把新的sret*的值赋给s2和s4,然后只需要addTable(s1,s2,s3,s4)就可以了.
    所以我要得到的是sret0,sret2,sret4的实际值(在前面定义了的值)。比如,前面定义了,var sret0=5;我要得到的就是把这个5赋给s1.
      

  16.   

    //试一下这样来取数值把 
    <script>
    var sip0=1;
    var sret0=1;
    var sip1=1;
    var sret1=1;
    var count=7;//试验用
    var sret=1;
    var ip1=1;
    var ip2=1;
    var fip;
    var fret;
    var fip1;
    var fret1;
    count=7;
    for(i=0;i<(count/2);i++)
      {
      var   s1="sip"+2*i;
      alert(s1);
      try
      {
      val=eval(s1);
      }
      catch(e)
      {
      val="0"
      }
      alert(val);  var   s2="sret"+2*i;
      var   s3="sip"+(2*i+1);
      var   s4="sret"+(2*i+1);
      }
    </script>
      

  17.   

    catch(e)
      {
      val="0"
      }
    上面这个是干嘛用的?去掉又不行.这样val最后还是等于0,s1还是等于字符sip*啊,sip*的值传到哪里去了?我看不明白,麻烦解释一下。
      

  18.   


     try
      {
      val=eval(s1);//取sip*的值得
      }
      catch(e)//
      {
      val="0"//取不到就给个默认值不然会出错的
      }
      alert(val);
    你想什么时候取就什么时候用吧