我写的 jsp 代码有点像这样:
<%
out.println("<div id=\""+rs.getString(2)+"\" align=\"center\" onclick=\"showDialog()\" style=\"float:left;background-color:#b4cde6; height: 150px; width: 200px;margin:20px \">");
out.println("<p style=\"background-color:#ffffff;width:200px;\">NAME-"
+ rs2.getString(2) + "</p>");
/* out.println("<input type=\"submit\" value=\""
+ rs.getString(2) + "\" name=\"group\">");
*/
out.println("<a name=\"class_start\" value=\""
+ rs.getString(1)
+ "\" style=\"background-color:#B4CDE6;width:200px;\" href=\"http://localhost:8080/ClassKarma_1/angular-gauge.jsp\">"+rs.getString(5)+"</a>");
%>
</div>
在这里,我动态地为
function showDialog() {
alert(this.id+" ID");
};
它显示带有未定义 Id 的警报。我对此很陌生(我使用的技术可能是完全错误的)。请问有人可以帮我解决这个问题吗?
更新
生成的html是这样的,我觉得很完美
<div style="background-color:#fffff;overflow:hidden; height:800px; width: 800px;">
<div id="1" align="center" onclick="showDialog()" style="float:left;background-color:#b4cde6; height: 150px; width: 200px;margin:20px "><p style="background-color:#ffffff;width:200px;">NAME-Saurabh</p><a name="class_start" value="1" style="background-color:#B4CDE6;width:200px;" href="http://localhost:8080/ClassKarma_1/angular-gauge.jsp">3</a></div> <div id="2" align="center" onclick="showDialog()" style="float:left;background-color:#b4cde6; height: 150px; width: 200px;margin:20px "><p style="background-color:#ffffff;width:200px;">NAME-Syed</p><a name="class_start" value="1" style="background-color:#B4CDE6;width:200px;" href="http://localhost:8080/ClassKarma_1/angular-gauge.jsp">1</a></div>
最佳答案
解决方法:
<%
out.println("<div id=\""+rs.getString(2)+"\" align=\"center\" onclick=\"showDialog(" + rs.getString(2) + ")\" style=\"float:left;background-color:#b4cde6; height: 150px; width: 200px;margin:20px \">");
out.println("<p style=\"background-color:#ffffff;width:200px;\">NAME-"
+ rs2.getString(2) + "</p>");
/* out.println("<input type=\"submit\" value=\""
+ rs.getString(2) + "\" name=\"group\">");
*/
out.println("<a name=\"class_start\" value=\""
+ rs.getString(1)
+ "\" style=\"background-color:#B4CDE6;width:200px;\" href=\"http://localhost:8080/ClassKarma_1/angular-gauge.jsp\">"+rs.getString(5)+"</a>");
%>
</div>
JS
function showDialog(id) {
alert(id + " ID");
};
解释:
为了显示在后端生成的 onclick 事件,做了一个简单的更改:
原文:
onclick=\"showDialog()\"
修改:
onclick=\"showDialog(" + rs.getString(2) + ")
由于此修改,javascript 函数也必须修改为接受参数...
这也可以通过将“this”传递给 onclick 函数并更改 javascript 函数以接受“this”作为参数来完成。这将解决问题,但它会传递整个 div 项目的点击,而不仅仅是你指定的被点击的 div 的 ID。如果您需要更改单击的 div 的文本或执行任何与 DOM 相关的操作,如果您使用的是 jQuery,则应传递“this”。
关于javascript - 使用 Javascript 在 JSP 中获取 <div> 的未定义 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16911876/