如何使用jquery更新动态生成的表行?我可以获取一行,但无法更新它。 我应该调用add函数还是我必须为它编写一个新函数?
//Edit function
$('#list').on('click', 'td:last-child', function (e) {
var $tr = $(this).parent(),
$tds = $tr.children(),
sname = $tds.eq(0).text().trim(),
mon = $tds.eq(1).text().trim();
year = $tds.eq(2).text().trim();
$('#G1 option').each(function () {
if ($(this).text().trim() == sname) {
$(this).prop('selected', true);
return false;
}
});
$('#H1 option').each(function () {
if ($(this).text().trim() == mon) {
$(this).prop('selected', true);
return false;
}
});
$('#I1 option').each(function () {
if ($(this).text().trim() == year) {
$(this).prop('selected', true);
return false;
}
});
$('#J1').val($tds.eq(3).text().trim())
$('#E1').val($tds.eq(4).text().trim())
e.preventDefault();
$('#irow').click(); //for update
});
这是正确的方式..?有人可以建议我如何更新特定的行.... 这是我的演示代码,它是如何工作的,http://jsfiddle.net/ca078/runsn84r/2/ 请帮我更新表格的特定行....
答案 0 :(得分:0)
将$ tds声明为public,当您单击编辑按钮时,隐藏添加按钮并显示更新按钮使用以下代码进行更新按钮事件
$("#btnUpdate").on("click"),function(){
$tds.eq(0).text(value1);
$tds.eq(1).text(value2);
$tds.eq(2).text(value3);
});
如果你在一个函数中声明一个变量,那么它的作用域只在那个函数中,并且在这种情况下它是一个私有变量,在声明像这样的add和update方法之前声明$ tds
var $tds=null;
$('#list').on('click', 'td:last-child', function (e) {
var $tr = $(this).parent(),
$tds = $tr.children(),
..................
.........
});
$("#btnUpdate").on("click"),function(){
$tds.eq(0).text(value1);
....................
..............
});
每次单击编辑按钮时,$ tds值都会使用新值更新,因为它在函数外部声明,您可以使用$ tds进行更新方法