javascript - 使用 Javascript 在 JSP 中获取 <div> 的未定义 ID?

标签 javascript jsp jakarta-ee html

我写的 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>

在这里,我动态地为

添加了 id,但是当我试图在 javascript 中显示带有其 ID 的警报时,如下所示:

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/

相关文章:

javascript - 弹出 Javascript 菜单

javascript - 从 JSP 显示“另存为”窗口

java - 数据库中 Servlet 更改后刷新 JSP

java - Java 中的 Mercurial 服务器,无需 python 和 hg 命令

javascript - RxJS - 当提供的表达式为真时完成观察

javascript - 无法在 Typescript 中为对象属性设置值。无法设置未定义的属性 'ismain'

c# - try/catch/finally 中 "finally"的用途是什么

jsp - 如何在 JSTL EL 测试中针对枚举值进行测试?

java - 检测是在 servlet 容器中运行还是独立运行

java - 如何在列表单元格中添加组件?