Javascript 在foreach循环中获取TD的值
我有这个代码,显示我的物品清单Javascript 在foreach循环中获取TD的值,javascript,jquery,html,jsp,Javascript,Jquery,Html,Jsp,我有这个代码,显示我的物品清单 <tbody class="table-color2"> <c:forEach var="defect" items="${defectList}"> <tr> <td id="defectId"><a onclick="getDefectId()">${defect.id}</a></td> <td&g
<tbody class="table-color2">
<c:forEach var="defect" items="${defectList}">
<tr>
<td id="defectId"><a onclick="getDefectId()">${defect.id}</a></td>
<td>${defect.createdDate}</td>
<td>${defect.reportedBy.firstName}</td>
<td>${defect.title}</td>
<td>${defect.bugtype.description}</td>
<td>${defect.status.description}</td>
<td>${defect.priority.description}</td>
</tr>
</c:forEach>
</tbody>
但目前,我得到的是一个未定义的值,如何得到该值?尝试以下方法:使用text()
而不是val()
,因为您想知道td
中的文本,而不是input
元素的值
编辑:-抱歉,错过了有多个td。在这种情况下,您不能对所有tds使用相同的id。只需将其设置为类,并在函数中进行以下更改
function getDefectId(){
var defectId = $('.defectId').text();
alert("Defect ID" + defectId);
}
我建议使用jQuery事件处理程序,而不是调用javascript函数。请参阅下面的代码
HTML:删除onclick调用
<td class="defectId"><a href="#">${defect.id}</a></td>
尝试以下操作:使用text()
而不是val()
,因为您想知道td
中的文本,而不是input
元素的值
编辑:-抱歉,错过了有多个td。在这种情况下,您不能对所有tds使用相同的id。只需将其设置为类,并在函数中进行以下更改
function getDefectId(){
var defectId = $('.defectId').text();
alert("Defect ID" + defectId);
}
我建议使用jQuery事件处理程序,而不是调用javascript函数。请参阅下面的代码
HTML:删除onclick调用
<td class="defectId"><a href="#">${defect.id}</a></td>
你有几个问题。首先,在循环中附加相同的
id
,这将导致无效的重复项。另外,a
元素没有要检索的值,因此需要使用text()
。最后请注意,使用当前方法意味着您需要将单击元素的此
引用传递给函数
function getDefectId(){
var defectId = $('.defectId').text();
alert("Defect ID" + defectId);
}
但是,您可以通过使用类并在JS中连接事件来整理所有这些。试试这个:
<tbody class="table-color2">
<c:forEach var="defect" items="${defectList}">
<tr>
<td class="defect"><a href="#">${defect.id}</a></td>
<td>${defect.createdDate}</td>
<td>${defect.reportedBy.firstName}</td>
<td>${defect.title}</td>
<td>${defect.bugtype.description}</td>
<td>${defect.status.description}</td>
<td>${defect.priority.description}</td>
</tr>
</c:forEach>
</tbody>
您有几个问题。首先,在循环中附加相同的
id
,这将导致无效的重复项。另外,a
元素没有要检索的值,因此需要使用text()
。最后请注意,使用当前方法意味着您需要将单击元素的此
引用传递给函数
function getDefectId(){
var defectId = $('.defectId').text();
alert("Defect ID" + defectId);
}
但是,您可以通过使用类并在JS中连接事件来整理所有这些。试试这个:
<tbody class="table-color2">
<c:forEach var="defect" items="${defectList}">
<tr>
<td class="defect"><a href="#">${defect.id}</a></td>
<td>${defect.createdDate}</td>
<td>${defect.reportedBy.firstName}</td>
<td>${defect.title}</td>
<td>${defect.bugtype.description}</td>
<td>${defect.status.description}</td>
<td>${defect.priority.description}</td>
</tr>
</c:forEach>
</tbody>
您可以执行以下操作(请记住,id
必须是唯一的):
您可以执行以下操作(请记住,id
必须是唯一的):
没问题。如果答案有用的话,别忘了投票/接受。没问题。如果答案有帮助,不要忘记投票/接受。@A.Wolff,谢谢你指出问题所在。我已经在@A.Wolff的回复中进行了更正,感谢您指出这个问题。我已经在回复中做了更正。