根据所选的id删除字符串中的特定文本行

时间:2013-06-03 16:21:19

标签: javascript jquery

我正在尝试删除字符串中的某个表行。例如,我在下面的代码中包含一个字符串。让我们调用存储temp

下面的字符串的变量
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>

我有几个按钮,其id与上面的行数相对应。如果我单击第一个按钮,它的相应ID为1,第二个按钮有2,等等。

我得到的是,如果我点击这些删除按钮,我想根据我点击的id(按钮)删除上面的相应表格行。

到目前为止,这是我的代码。

$(".delete").click(function() {
   var id = $(this).attr("id");
   var temp = $("#detailsBox").val();

   for (i=1; i!=id; i++) {
     if (i=1) {

     }
   }

  $(this).closest('tr').remove();

}

如何根据我点击的id(按钮)删除变量temp中该字符串的一部分?如果我选择按钮1,我想删除第一个表格行。按钮2,第二个表行等我知道我需要替换字符串,但是如何删除字符串中的某些实例呢?

5 个答案:

答案 0 :(得分:1)

您正在尝试使用jQuery,就好像这些元素在DOM中......而它们不是。它们只是一个字符串。所以你可以这样做:

var arr = yourString.split("<tr>");

$(".delete").click(function() {
 var id = $(this).attr("id");
 arr = arr.splice(parceInt(id, 10)-1, 1);
}

现在你的数组里面有正确的TR。您所要做的就是将它们再次转换为字符串:

var htmlString;
for (var i=0; i<arr.length; i++) {
  htmlString += arr[i];
}

更新jQuery WAY 你也可以用jQuery做到这一点。看看小提琴

http://jsfiddle.net/J6HJ2/2/

答案 1 :(得分:1)

解析HTML为dangerous。因此,我建议您将字符串转换为DOM,然后在DOM树上进行操作。

这是一个简单的jQuery解决方案:

var row = 1; // the row I want to remove
var temp = $("#myTextarea").value(); // get HTML

var table = $("<tbody>" + temp + "<tbody>"); // creates DOM nodes from HTML
table.find("tr").eq(row - 1).remove();
var tempWithoutRow = table[0].innerHTML;

JSFiddle中尝试自己。

答案 2 :(得分:0)

您可以选择所有表格行,然后向下筛选到您想要的那些:

$(".delete").click(function() {
    var id = $(this).attr("id");
    $("#my-table").find("tr").eq(id + 1).remove();//since your IDs are not zero-indexed and .eq() is
});

答案 3 :(得分:0)

$(".delete").click(function() {
   var id = $(this).attr("id");
   var temp = $("#detailsBox").val();

   for (i=1; i!=id; i++) {
     if (i=1) {

     }
   }

  $(this).parentNode.remove();

}

如果.delete在td上

否则,如果你有<td><button class="delete"></button></td>

然后它是$(this).parentNode.parentNode.remove();

如果按钮位于<tr>

内,则无需id

答案 4 :(得分:-1)

简单的解决方案是为行提供有意义的ID并使用以下代码:

$(".delete").click(function() {
  $('#row' + $(this).id).remove();
}

如果你真的想在字符串中计算无名的TR元素,你可以将它们分成一个split("<tr>")的数组