javascript - 在javascript中获取具有相同ID的不同值
问题描述
html
<c:forEach var="legList" items="${legList}">/* iterating over ledger name and
ledger id */
<tr>
<td>
<input type="hidden" class="legid" name="legid" id=legid
value=${legList.ledgerId}>
<a onclick=display(document.getElementById('legid').value)
href='#myModal' role="button" data-toggle="modal">${legList.ledgerName}</a>
</td>
</tr>
Javascript
var display = function(id){
alert(id); //want to get id of clicked ledger name
}
但这里的问题是我在单击所有链接时得到相同的 id,我知道为什么会发生这种情况,因为我们无法获得具有相同 id 的值。所以我的问题是,当 id 在 for 循环内部发生变化时,如何在这里获得不同的 ID。希望我的问题很清楚。
解决方案
id
s在文档中必须是唯一的。如果您通过让多个元素具有相同id
的getElementById
.
a
相反,使用您的元素实例在 中可用this
的事实onclick
,并使用它通过 DOM 找到它input
旁边的下一个(可能previousElementSibling
在这种情况下使用):
<a onclick="display(this.previousElementSibling.value)" ...
例子:
function display(value) {
alert("value is: " + value);
}
<table>
<tbody>
<tr>
<td>
<input type="hidden" class="legid" name="legid" value="value1">
<a onclick=display(this.previousElementSibling.value)
href='#myModal' role="button" data-toggle="modal">Value 1</a>
</td>
</tr>
<tr>
<td>
<input type="hidden" class="legid" name="legid" value="value2">
<a onclick=display(this.previousElementSibling.value)
href='#myModal' role="button" data-toggle="modal">Value 2</a>
</td>
</tr>
<tr>
<td>
<input type="hidden" class="legid" name="legid" value="value3">
<a onclick=display(this.previousElementSibling.value)
href='#myModal' role="button" data-toggle="modal">Value 3</a>
</td>
</tr>
</tbody>
</table>
一般来说,我建议不要使用onclick
,而是使用现代事件处理或许多流行的 MVC 样式框架之一。
推荐阅读
- sql - 为什么我的圆形功能无法正常工作?
- javascript - JS await 在浏览器控制台中抛出错误
- java - 即使使用 cascade=CascadeType.ALL,POST/PUT/DELETE 方法也会出现约束休眠异常
- android - Android - Jetpack 撰写缺少的参考资料
- javascript - Javascript 计时器错误地结束
- typescript - TypeScript tls.TLSSocket() 抱怨缺少“socket”参数
- java - 在 SpringBoot-Neo4j 中保存用户时出错
- java - java从同一个包中的另一个类调用一个类
- html - 表格中的图像根本没有边框?如何?宽度和高度问题.. 在 css / html 中
- node.js - NPM 安装在 docker 容器中失败 - npm WARN tar ENOENT:没有这样的文件或目录