1

文字列内の特定のテーブル行を削除しようとしています。たとえば、次のコードを文字列にしています。以下の文字列を格納する変数を呼び出しましょうtemp

<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>

上記の行数に対応するIDを持つボタンがいくつかあります。最初のボタンをクリックすると、対応する ID が 1、2 番目のボタンが 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();

}

tempクリックした id(button) に基づいて、変数内のその文字列の一部を削除するにはどうすればよいですか? ボタン 1 を選択すると、テーブルの最初の行を削除します。ボタン 2、テーブルの 2 行目など。文字列を置き換える必要があることはわかっていますが、文字列内の特定のインスタンスを削除するにはどうすればよいですか?

4

5 に答える 5

1

HTML の解析は危険です。したがって、文字列を 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で試してみてください。

于 2013-06-03T17:14:13.177 に答える
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
});
于 2013-06-03T17:03:34.550 に答える
-1

簡単な解決策は、行に意味のある ID を与え、次のコードを使用することです。

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

文字列内の名前のない TR 要素を本当にカウントしたい場合は、それらを次のように配列に分割できます。split("<tr>")

于 2013-06-03T16:52:14.097 に答える