在我的HTML中我有:
<div align="center">
<div class="wrapper">
<div class="table">
<div class="row header">
<div class="cell">Select No</div>
<div class="cell">Id</div>
<div class="cell">Name</div>
</div>
<c:forEach var="student" items="${studentList}" varStatus="status">
<div class="row">
<div class="cell">${status.index + 1}</div>
<%-- <div class="cell">${student.u_id}</div> --%>
<div class="cell">
<a href="edit?id=${student.u_id}" onclick="return getData(this);">${student.u_id}</a>
</div>
<div class="cell">${student.name}</div>
</div>
</c:forEach>
</div>
</div>
</div>
我的javascript代码是:
function getData(element) {
var ID = $(element).attr("u_id");
var inputs=document.getElementsByTagName('input');
var tds=o.getElementsByTagName('td');
for(a in tds){
inputs[a].value=tds[a].innerHTML;
}
console.log(ID);
return false;
}
我的要求:
这里我将学生列表数据显示到html表中。 我想点击 id 字段后会调用javascript并在控制台中获取id的值。但我在控制台中获得 undefiend 值。 我做错了什么?
答案 0 :(得分:0)
ID
选择器应该是唯一的,但在您的情况下,您将相同的ID
分配给循环内的多个元素是错误的。请改用Class
选择器。
答案 1 :(得分:0)
HTML代码中没有u_id
属性,只有您在EL表达式${....u_id}
中使用的值。
这些属性将被HTML中的实际值替换(如预期),因此如果您需要通过javascript检索它们,则必须将它们分配给另一个HTML属性,或者在{{1}中传递它们调用。
使用当前的HTML代码,您可以从onclick
标记的内容中读取值,但添加属性将是一种更清晰的方法。
答案 2 :(得分:0)
试试这个。 var inputs = document.getElementsByTagName(&#39; input&#39;)。value;
答案 3 :(得分:0)
在你的
中<a href="edit?id=${student.u_id}" onclick="return getData(this);">${student.u_id}</a>
您没有u_id
属性,而是将其更改为
<a href="edit?id=${student.u_id}" onclick="return getData(this);" u_id="{student.u_id}">${student.u_id}</a>