Один из способов, которым я занимался в прошлом, это использовать атрибут данных html5. Который подхватывается версиями jQuery 1.4.3 и выше.
<table>
<tr class="row" data-rowInfo='{"Id": "1", "Name": "Jon"}'>
<td>
Row Id 1
</td>
<td>
<input type="button" value="Edit"/>
</td>
</tr>
<tr class="row" data-rowInfo='{"Id": "2", "Name": "Mark"}'>
<td>
Row Id 2
</td>
<td>
<input type="button" value="Edit"/>
</td>
</tr>
<tfoot>
<tr>
<td></td>
</tr>
</tfoot>
</table>
Тогда в вашем jquery вы можете сделать следующее:
$("input[type=button]").click(function(){
var rowInfo = $(this).parents("tr.row").data("rowInfo");
//Do something with rowInfo.Id;
});
Используя атрибут data, вы можете получить богатый объект json, который может содержать больше информации, чем просто атрибут. Кроме того, вам нужно только объявить один атрибут данных для хранения всей необходимой информации.
Пример работы с jsfiddle .