数据表添加/删除数据到文本区域

datatables adding/removing data to text area

本文关键字:文本 区域 数据 删除 添加 数据表      更新时间:2023-09-26

我试图将单击的数据表行添加到文本区,如果再次单击同一行,则在文本区中搜索数据,如果发现已删除。(选择/取消选择)

如果我选择一行,然后取消选择,效果很好。但是,当我选择多个行,然后返回取消选择它们时,只搜索并删除最后选择的行,而不删除其他行。

帮忙吗?

$('#myTable tbody').on('click', 'tr', function() {
  var str = $("#selectedref").text();
  var ref = table.cell(this, 2).data();
  if (str.indexOf(ref) != -1) {
    var rmvref = ref + "'r'n";
    $("#selectedref").html($("#selectedref").html().replace(rmvref, ""));
  } else {
    var addref = ref + "'r'n";
    var str1 = addref.concat(str);
    $("#selectedref").text(str1);
  }
});

编辑:既然你使用的是textarea:

$('#myTable tbody').on('click', 'tr', function() {
  var str = $("#selectedref").val();
  var ref = table.cell(this, 2).data();
  if (str.indexOf(ref) != -1) {
    var rmvref = ref + "'r'n";
    $("#selectedref").val($("#selectedref").val().replace(rmvref, ""));
  } else {
    var addref = ref + "'r'n";
    var str1 = addref.concat(str);
    $("#selectedref").val(str1);
  }
});


尝试使用
在HTML中执行换行而不是'r'n。

你的代码片段在这种情况下有效:

var row1 = "test row 1'r'n";
var row2 = "test row 2'r'n";
var row3 = "test row 3'r'n";
str = row3.concat(row2.concat(row1));
str = str.replace(row2, "");

但是当你用元素替换str时。innerHTML不行,因为它对换行符的处理方式不同。

$('#myTable tbody').on('click', 'tr', function() {
  var str = $("#selectedref").text();
  var ref = table.cell(this, 2).data();
  var strref = ref + "<br>";
  if (str.indexOf(ref) != -1) {
    $("#selectedref").html($("#selectedref").html().replace(strref, ""));
  } else {
    var str1 = strref.concat(str);
    $("#selectedref").text(strref);
  }
});

使用工作代码编辑

我终于明白了!

$('#myTable tbody').on('click', 'tr', function() {
  var str = $("#selectedref").text();
  var ref = table.cell(this, 2).data();
  if (str.indexOf(ref) != -1) {
    var rmvref = ref + "'r'n";
    $("#selectedref").text($("#selectedref").text().replace(rmvref, ""));
  } else {
    var addref = ref + "'r'n";
    var str1 = addref.concat(str);
    $("#selectedref").text(str1);
  }
});