Html 元素包含复杂且唯一的 id,由作为前缀的命名空间和作为后缀的递增索引组成。
我尝试使用 id 的通配符表达式来做到这一点。
如果使用没有命名空间的简单方法,它可以正常工作:
$j("[id*=service_selected_]").click(function(){
...
为了保持唯一性,我需要在 id 中提供命名空间部分,但不能这样解决:
var selId = "'" + '[id*=' + namespace + '_service_selected_]' + "'";
$j(selId).click(function(){
...
在 .jsp 部分下方:
<c:forEach var="package" items="${packages.page}" varStatus="status">
<tr>
<td>
${package.name}
</td>
<td id="<portlet:namespace/>_service_price_${status.index}">${package.price}</td>
<td >
<input type="checkbox" name="service_id" value="${package.id}" id="<portlet:namespace/>_service_selected_${status.index}">
</td>
</tr>
</c:forEach>