jsp为上层for循环,key值可展示及传递,value只能展示不能传递,怎么解?
下面为源代码:
javascript函数:
function trsubmit() {
var aa = document.getElementById("test22");
alert(aa.innerHTML);
}
jsp主要代码:
<c:forEach var="big" items="${applicationScope.bigMap}">
<!-- 栏目-->
<div class="classBar">
<li style="list-style-type: square;color:#FFFFFF" >${big.key}</li>
</div>
<!-- 板块<String, HashMap<String, bbs_board>>-->
<table border="0" cellspacing=0 bordercolor="lightgrey"
bordercolorlight="lightgrey" bordercolordark="white">
<c:forEach var="small" items="${big.value}">
<tr >
<form action="tiezi.do" method="post" id="trform">
<span onclick="trsubmit();"** id="test22"**>${small.key}</span>
</form>
<td style="text-align: center;" width="100px">
<img alt="" src="img/index/boardPic.jpg" style="margin-top: 40px">
</td>
</tr>
</c:forEach>
</table>
</c:forEach>
id为test22因为循环生成多个,不是唯一的id,所以你直接读取这个id的 value,就会出现漏掉的问题,你需要把这个id作为一个数组来读取就可以读取所有的!
你可以在id后面添加一个序号,id="test${index}",index从foreach生成。或者初始化int index=0; id="test<%=index++%>"。
这样id就唯一了。
id重复只能获取第一个出现的,传递this对象就是当前span就行
function trsubmit(aa) {
alert(aa.innerHTML);
}
<span onclick="trsubmit(this);" id="test22">${small.key}</span>