我有一个动态表,在每个tbody
之前的tr
内,我有一个输入,我想使用javascript或jquery获取此值。
<input id="formID" type="hidden" value="records.get(i).getFormID">
<tr>
<td><%=records.get(i).getCensusYear()%></td>
<td> Approved </td>
<td><%=records.get(i).getApprovedByName()%> </td>
<td> </td>
<td> <input align="center" id ="clickedTable" class="btn btn-flat btn-success" style="margin: 0 auto 5% auto" type="button" value="View Table"/></td>
<td> <input align="center" id= "clickedChart" class="btn btn-flat btn-success" style="margin: 0 auto 5% auto" type="button" value="View Chart"/></td>
</tr>
单击该按钮时,我想获得input
的值。我已经使用过closest, prev and find
但它无法正常工作。我也尝试了previous question中的答案,但它仍然没有成功。
$('#clickedTable, #clickedChart').click(function () {
if (this.id == 'clickedTable') {
document.getElementById('clicked').setAttribute('value', "table");
var $item = alert($(this).closest('tr').prev('input').attr('formID'));
var $item = alert($(this).prev('input').attr('formID'));
alert($item);;
document.getElementById('archivedView').submit();
} else if (this.id == 'clickedChart') {
document.getElementById('clicked').setAttribute('value', "chart");
var $item = $(this).closest('tr').prev();
document.getElementById('formID').setAttribute('value', $item);
document.getElementById('archivedView').submit();
}
});`
上面的代码继续返回未定义的值。
答案 0 :(得分:0)
编辑 - 由于您使用的是dataTables,因此可以执行以下操作:
<强> HTML:强>
<table id="t">...</table>
<强> jquery的:强>
myData = [
["James", "1997", "<input type=\"button\" onclick=\"funcX('someData')\""],
["Peter", "2003", "<input type=\"button\" onclick=\"funcX('someOtherData')\""]
]; //can be from any other source (read dataTables docs)
$('#t').DataTable( {
data: myData,
columns: [
{ title: "Name" },
{ title: "Year" },
{ title: "" } //your input button
]
} );
function funcX(arg) { ... }