我有一个表,在单击按钮时动态添加行。
function SaveData()
{
var empid='CT'+($("#Employee tbody tr").length+1);
var newRow = jQuery('<tr><td>'+empid+' </td><td>'+$("#name").val()+'</td><td>'+$("#desg").val()+'</td><td>'+$("#Sal").val()+' </td><td><a href="#" class="Edit_link" onclick="EditRow();">Edit</a>   <a href="#">Delete</a> </td></tr>');
jQuery('#Employee').append(newRow);
}
所以创建的表看起来像:
Id Name Designation Salary
1 ABC XYZ 10000 Edit Delete
2 ABC XYZ 10000 Edit Delete
现在,只要我想编辑特定的行,我将点击该行的“编辑”按钮。
function EditRow()
{
var row= $(this).closest('tr');
var id=$("td:eq(0)",row).text();
var name=$("td:eq(1)",row).text();
var desg=$("td:eq(2)",row).text();
alert(id);
alert(name);
alert(desg);
}
在警告框中,它显示id,name,desg的空白值。
你可以得到这样的行:
var row=$(this).closest("tr");
在找到该行后,您可以找到它的值,如下所示,并继续保存:
$(document).on('click','.Edit_link',function(){
var row=$(this).closest("tr");
var id=$("td:eq(0)",row).text()
})
在调用this
时使用EditRow()
传递当前的dom。像这样:
onclick="EditRow(this);"
要获得EditRow
中的当前行,请使用:
$(this).closest('tr');//this would give you current row object
$(this).find('td').slice(0,3).each(function(){
alert($(this).text());// will alert name,designation,salary 1 by 1
})
将数据表附加到id Document_Datatable。点击铅笔,你可以编辑一个特定的行。 var ROOT ='@ Url.Content(“〜/”)'; response是ajax成功的函数参数。
var table = $('#Document_Datatable').DataTable();
table.clear().draw();
for (var i = 0; i < response.length; i++) {
var edit = "<a onclick='getSingleDocument(" + response[i].WCNDocumentId + ',' +
response[i].WCNID + ")' title'Edit' class='btn btn-xs btn-default -text-blue' data-
target='#UploadDocument' data-toggle='modal'><i class='fa fa-pencil'></i></a> <label
title='Delete' class='btn btn-xs btn-danger' onclick='DeleteDoc(" +
response[i].WCNDocumentId + ',"' + response[i].FileName + '"' + ")' data-
toggle='modal' ><i class='fa fa-trash-o'></i></label>";
var name = 'Test';
DocID = response[i].WCNDocumentId;
DocName = response[i].DocumentName;
var roNode = table.row.add([
response[i].DocumentName,
response[i].Description,
response[i].Description,
response[i].UserName,
edit
])
table.draw();