Javascript 在动态构造的html表中获取行值
我正在用复选框在servlet内部构建一个动态表,并为复选框指定了id,现在我试图通过单击按钮来获取选中的复选框行值,但得到的值是错误的,如果我为第四行值选择了复选框,则表示显示第二行值的警报,下面我给出了我的servlet和jquery代码, 查看输出图像我已选择260号行,但警报显示257这是我的问题。 Servlet代码Javascript 在动态构造的html表中获取行值,javascript,jquery,html,servlets,Javascript,Jquery,Html,Servlets,我正在用复选框在servlet内部构建一个动态表,并为复选框指定了id,现在我试图通过单击按钮来获取选中的复选框行值,但得到的值是错误的,如果我为第四行值选择了复选框,则表示显示第二行值的警报,下面我给出了我的servlet和jquery代码, 查看输出图像我已选择260号行,但警报显示257这是我的问题。 Servlet代码 PrintWriter out = response.getWriter(); PreparedStatement distscenarioName =
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+"'>");
}
}
请设置tr的id和复选框,如:
见**行:
什么是StartExec,我在servlet codetats one button id中没有找到它,对于button click事件,我正在读取用于按钮单击的表行值。通过使用以下ajax调用,我构建了一个表$.ajax{type:POST,url:./ScenarioTCExecutionPage,success:functionresult{/*alertLength+result.toString.length;//*alertLength+result.length;*/$testcaseTable.htmlresult;$testcaseTable.show;}};您能否为我们提供一个带有虚拟数据的JSFIDLE演示,以便我们更好地帮助您。请确保您没有多个相同id的按钮。其次,由于您是动态构建它的,因此最好以以下方式绑定处理程序:$'document'。单击,'StartExec',函数{//Your code here};tat点击不是问题yaar,如果我选中第三行复选框,警报将显示第一行值。亲爱的@Mukesh Daphi及时提供了很大帮助兄弟,非常感谢你救了我。。。
$('#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);
}
});
});
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++;
}
$('#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);
}
});
});