Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击编辑链接时,使用jquery更新动态生成的表行_Jquery_Jsp - Fatal编程技术网

单击编辑链接时,使用jquery更新动态生成的表行

单击编辑链接时,使用jquery更新动态生成的表行,jquery,jsp,Jquery,Jsp,如何使用jquery更新动态生成的表行?我可以获取一行,但无法更新它。 我应该调用add函数还是必须为它编写一个新函数 //Edit function $('#list').on('click', 'td:last-child', function (e) { var $tr = $(this).parent(), $tds = $tr.children(), sname = $tds.eq(

如何使用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
        });
这条路对吗。。?有人能建议我如何更新特定的行吗。。。。 这是我的演示代码,它是如何工作的,
请帮助我更新表的特定行。…

将$tds声明为公共,当您单击编辑按钮时,隐藏添加按钮并显示更新按钮,使用以下代码更新按钮事件

$("#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 for update方法

您的问题不清楚。你能解释一下你想做什么吗?@Apul Gupta-我有一个表单,当我点击add时,一行被添加到表“list”(此处)中。当我单击编辑时,特定的行详细信息将在表单上检索,并且当我再次单击添加时,检索到的行将被更新。。。。(添加和编辑部分正在工作,但未更新。演示代码如上图所示。)。它不是更新一行,而是向表中添加一个新行。感谢您回复@Optimus。你能告诉我,它应该如何被宣布为公共的吗?我是jquery新手,我只知道基本知识。var tds=$tr.children();-这是正确的方式吗?如何显示更新按钮?当我这样做时,编辑按钮隐藏在表中,但不显示更新按钮$('a')。单击(function(){$(this).hide();$(this).next().show('#Update');});您不必隐藏编辑按钮隐藏添加按钮然后显示更新按钮更新后隐藏更新并显示添加我应该在$('#list')之后在哪里调用它;或者如上所示。。?我像上面所示那样试过了,但不起作用,我犯了什么错误$(#Update”).show(函数(e){if($('.#G1').val(){$tds=$tr.children(),sname=$tds.eq(0.text().trim().trim(),mon=$tds.eq(1.text().trim();year=$tds.eq(2.text().trim();…});它正在添加新行。这是更新后的fiddle。。