JSP锚点标签内调用List.get(i)取值返回undefined原因排查
问题根因及修复方案
核心错误点
- 函数名不匹配:点击事件中调用的函数名为
openWindow(),但实际定义的函数名为OpenHierarchyWindow(),名称、大小写均不一致,函数本身无法被正常触发。 - 字符串参数未加引号:服务端渲染
<%=list.get(i)%>后,生成的前端代码为openWindow(Abc),JS会将Abc识别为未定义的变量,而非字符串常量,因此无法拿到正确的参数值。 - 错误调用
value属性:传入函数的参数本身就是字符串类型,不存在value属性,直接输出参数即可,不需要追加.value。 - Java代码与HTML混写格式错误:原有循环代码没有正确分隔Java逻辑和HTML内容,会导致页面解析失败,标签属性无法正常渲染。
修复后代码
JSP循环部分
for (int i = 0; i < list.size(); i++) { %> <a id="<%=list.get(i)%>" href="javascript:;" onClick="OpenHierarchyWindow('<%=list.get(i)%>');" align="left">Proceed</a> <% }
JS函数部分
function OpenHierarchyWindow(id) { alert("id value "+id); }
内容的提问来源于stack exchange,提问作者Styne J
相关产品推荐
相关产品推荐

