rs.last();
    int length = rs.getRow();
    rs.beforeFirst();
    rs.next();
    out.print("<table  border='2'>");
    for(int i=1;i<=length;i++)
    {
     out.print("<tr>");
     for(int j=1;j<=10;j++)//每行的属性数目是10
     {    
     out.print("<td>");
     if(j==1)
     {
      if("start".equals(rs.getString(j).trim()))
             {
              out.print("<img src='image/startexecute.png' alt='关闭' id='end' onclick='changeImg1()'/>");
             }
             
             else
             {
              out.print("<img src='image/stopexecute.png' alt='开启' id='start' onclick='changeImg3()'/>");
             }
     }
          else
     {
       out.print(rs.getString(j));
           out.print("</td>");
     }
     }
     rs.next();
     out.print("</tr>");
    }
    out.print("</table>");
这是在查询数据库结束后显示查询结果的代码,每行的第一个元素用图标表示点击图标时调用js,运行结果倒是没什么问题,就是我在点击图片的时候,无论我在点击哪行的图标,变化的总是第一行的,求解决办法,估计是代码逻辑问题。
js:
function changeImg1(){
        var img1 = document.getElementById("end");
        img1.src="image/stopexecute.png";img1.alt="关闭";
        window.location.href="update.jsp";
        alert("设备关闭成功");
    }
function changeImg3(){
    var img3 = document.getElementById("start");
    img3.src="image/startexecute.png"; img3.alt="开启";
    window.location.href="update.jsp";
    alert("设备开启成功");
}
    

解决方案 »

  1.   

    你每行创建了10个id='end'或者id='start'的图片?
    js里document.getElementById("end");应该是一个存有10个<img>的数组,
    你试试img1[5].src="image/stopexecute.png";img1[5].alt="关闭";是不是只有第6个有效??
      

  2.   

    你的每行的第一个元素要么是叫“start”要么是叫“end”,就相当于一组元素,而这个时候你要用document.getElementById()这个方法去获取的时候,他总是获取这个一组元素的第一个的。所以你看到你点的时候总是修改这一组元素中的第一个(即第一个行);onclick='changeImg3()'改为onclick='changeImg3(this)'
    function changeImg3(com){
      //var img3 = document.getElementById("start");
      com.src="image/startexecute.png";
      com.alt="开启";
      //看情况你是否要修改其他的一些东西  比如onclick事件的方法等
      window.location.href="update.jsp";
      alert("设备开启成功");
    }
      

  3.   

    恩,好了,解决了。
    我刚才试着将每行图片的ID改了为什么不能实现呢,我将每行的ID改为end+i,即end1,end2....endN按理说应该能实现的啊。
      

  4.   

    你把id改为 end+i的形式的时候你要在你的方法里价格参数
    onclick='changeImg3()'改为onclick='changeImg3(' + i + ')'
    function changeImg3(i){
      var img3 = document.getElementById("start" + i);
      img3 .src="image/startexecute.png";
      img3 .alt="开启";
      //看情况你是否要修改其他的一些东西 比如onclick事件的方法等
      window.location.href="update.jsp";
      alert("设备开启成功");
    }
    这样应该也可以的