Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在foreach循环中获取TD的值_Javascript_Jquery_Html_Jsp - Fatal编程技术网

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的回复中进行了更正,感谢您指出这个问题。我已经在回复中做了更正。