JQuery undo append

时间:2016-09-22 12:21:39

标签: javascript jquery html

我有一张桌子,里面有一个按钮,一旦我按下按钮就会把文字添加到td。我再次按下按钮后,我想在td中删除此文本。请注意此按钮在表格中多次使用因此是class属性。 我可以使用哪种方法来完成这项工作?

这是我的代码:

$(document).on('click', '.releasebutton', function () { // button class="releasebutton"
    var label = $(this).text();
    if (label == "Add") { // it is "Add" by default
        $(this).text("Cancel");
        $('.ReleaseTD').append("<br>" + "test"); // td class="ReleaseTD"
    }
    // the code above this works
    else {
        $(this).text("Add");
        $('.ReleaseTD').remove("<br>" + "test"); 
        // this obviously is wrong but this is where i would like the correct code
    };
});

3 个答案:

答案 0 :(得分:2)

你可以像这样在文本中创建ID:

$(document).on('click', '.releasebutton', function () { // button class="releasebutton"
    var label = $(this).text();
    if (label == "Add") { // it is "Add" by default
        $(this).text("Cancel");
        $('.ReleaseTD').append("<span id='textID'><br>" + "test</span>");
    }
    else {
        $(this).text("Add");
        $('#textID').remove(); 
    };
});

答案 1 :(得分:2)

请尝试以下方法:

$(document).on('click', '.releasebutton', function () { // button class="releasebutton"
    var label = $(this).text();
    if (label == "Add") { // it is "Add" by default
        $(this).text("Cancel");
        $('.ReleaseTD').append("<span id='txt_name'><br>" + "test</span>");
    }
    // the code above this works
    else {
        $(this).text("Add");
        $('#txt_name').remove(); 
    };
});

答案 2 :(得分:1)

两种方式:

1)将文本附加到具有唯一ID的范围中,然后删除此ID。例如,删除编号最大的ID。最愚蠢的方法是将最新的ID存储在全局变量中。

var global_last_appended_id = 0;

$(document).on('click', '.releasebutton', function () { // button class="releasebutton"
    global_last_appended_id ++;
    $('.ReleaseTD').append("<span id='appended-text-" + global_last_appended_id + "'><br>" + "test</span>");
  }
    // the code above this works
    else {
        $(this).text("Add");
        $('#appended-text-' + global_last_appended_id).remove(); 
        global_last_appended_id--; //go one step back so next time we remove the previous paragraph
    };
});

更新:编辑完成后,我添加了多次撤消的功能。基本上有无限的撤销。

2)[lame and wrong]将以前的.html() - 元素的整个HTML代码 - 保存到全局变量中;然后在必要时从全局变量恢复文本的先前版本。