在TR表外获得最接近的隐藏价值

时间:2016-06-24 07:53:08

标签: javascript jquery html

我有一个动态表,在每个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();
     }
   });`

上面的代码继续返回未定义的值。

1 个答案:

答案 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) { ... }