在动态构造的html表中获取行值

时间:2014-04-18 05:33:40

标签: javascript jquery html servlets

enter image description here我正在使用复选框在servlet中构建一个动态表,并且我给了复选框的id,现在我试图在按钮单击中获取一个选中的复选框行值并且出错了值,如果我选中第4行值的复选框表示显示第2行值的警报,下面我已经给出了我的servlet和jquery代码,   看到输出图像我选择了260个数字行,但警报显示257这是我的问题。 Servlet代码,

PrintWriter out = response.getWriter();
        PreparedStatement distscenarioName = null;
        PreparedStatement minscenariId = null;
        PreparedStatement testcaseName = null;
        String scenari_name = null; 
        Connection connection=DatabaseConnection.getConnection();
        distscenarioName=connection.prepareStatement("select distinct scenario_name from scenario");
        ResultSet rs=distscenarioName.executeQuery();
        out.println("<tr><td><b>");
        out.println("Scenario Name:");
        out.println("</b></td><td><b>");
        out.println("Testcase ID:");
        out.println("</b></td><td><b>");
        out.println("Testcase Name:");
        out.println("</b></td><td><b>");
        out.println("Testcase Description:");
        out.println("</b></td><td><b>");
        out.println("Action:");
        out.println("</b></td></tr>");
        int i=0;
        while(rs.next()){
            scenari_name=rs.getString("scenario_name");
            minscenariId=connection.prepareStatement("select min(scenario_id) from scenario where scenario_name =?");
            minscenariId.setString(1, scenari_name);
            ResultSet rss=minscenariId.executeQuery();              
            if(rss.next()){
                testcaseName=connection.prepareStatement("select tc_id,tc_desc,tc_name from testcase where scenario_id=?");
                testcaseName.setInt(1,rss.getInt("min(scenario_id)"));
                ResultSet testcaseExe=testcaseName.executeQuery();  
                out.println("<tr><td><h4>");
                out.println(scenari_name);
                out.println("</td></h4><td></td><td></td><td></td><td><input type=checkbox class='btnChckBox'></td></tr>");                 
                while(testcaseExe.next()){                      
                    out.println("<tr><td>");
                    out.println("<td id='testCaseId"+i+"'>");
                    out.println(testcaseExe.getInt(1));
                    out.println("</td>");
                    out.println("</td><td id='testCaseName"+i+"'>");
                    out.println(testcaseExe.getString("tc_name"));
                    out.println("</td><td>");
                    out.println(testcaseExe.getString("tc_desc"));
                    out.println("</td><td>");
                    out.println("<input type=checkbox class='btnChckBox' id='action"+i+"'>");
                    out.println("</td></tr>");
                    i++;
                }

                //out.println("<input type='hidden' id='gridSize' value='"+i+"'>");

            }
        }

我的jquery代码是

$('#StartExec').click(function() {
                     $('#testcaseTable tr').each(function(i) {
                            var tcID = this.cells[1].innerHTML;
                            var tcName = this.cells[2].innerHTML;
                            var cellvalues = this.cells[4].innerHTML;
                            if($('#action'+i).prop('checked')){
                                 alert('Inside if tc ID::::::::'+tcID);
                                    alert('inside if tc name::::::'+tcName);
                            }

                        });
                });

1 个答案:

答案 0 :(得分:0)

请设置id 复选框,如:

见**行:

while(testcaseExe.next()){    

                    **out.println("<tr id="+testcaseExe.getInt(1)+"><td>");**

                    out.println("<td id='testCaseId"+i+"'>");
                    out.println(testcaseExe.getInt(1));
                    out.println("</td>");
                    out.println("</td><td id='testCaseName"+i+"'>");
                    out.println(testcaseExe.getString("tc_name"));
                    out.println("</td><td>");
                    out.println(testcaseExe.getString("tc_desc"));
                    out.println("</td><td>");
                    **out.println("<input type=checkbox class='btnChckBox' id='action"+testcaseExe.getInt(1)+"'>");**
                    out.println("</td></tr>");
                    i++;
                }

并且你的jquery代码是

$('#StartExec').click(function() {
                     $('#testcaseTable tr').each(function(i) {
                               if($('#action'+this.id).prop('checked')){
                                 alert('Inside if tc ID::::::::'+tcID);
                                    alert('inside if tc name::::::'+tcName);
                            }

                        });
                });