0

実際には機能しないこのコードを持っているため、人々はここにいます。基本的に行を複製し、新しいエントリ用に新しい行を作成します。clone()と を使用していappendTo()ます。

JSFIDDLE

しかし、html の最後の部分を削除すれば機能します。新しいタグがあると構文が摩耗してしまうようです。誰かこの問題を解決してくれませんか?

<table>
    <tr>
        <td>Hello world!</td>
   </tr>
</table>

ありがとう!

4

3 に答える 3

1

あなたのフィドルにはいくつかの問題があります

1: 複製するために選択された行要素が間違っています。

2: 親要素はテーブルであるべきですが、それが間違って選択されています。

以下の変更されたコードを使用して、行を複製および追加できます。

 $("#clone").click(function() {
    i++;
    $("#remove").removeAttr("disabled");
    var parent = $("#data");
    var tr = $("#data tr:last");
    console.log(tr);
    var e = tr.clone().appendTo(parent);
    $(e).find("[type=text],[type=hidden]").each(function() {
      $(this).val('');
    });
  });

更新されたフィドル: https://jsfiddle.net/363m6dsy/6/

于 2016-07-23T16:31:07.060 に答える
0

ワーキングフィドル

行を複製してから、次のよう$("#parent").clone()に追加します。$('#data').append(e);

$("#clone").click(function() {
    i++;
    $("#remove").removeAttr("disabled");

    var e = $("#parent").clone();

    $(e).find("[type=text],[type=hidden]").each(function() {
      $(this).val('');
    });

    $('#data').append(e);
});

お役に立てれば。

$(document).ready(function() {
  var i = 1;
  $("#clone").click(function() {
    i++;
    $("#remove").removeAttr("disabled");

    var e = $("#parent").clone();

    $(e).find("[type=text],[type=hidden]").each(function() {
      $(this).val('');
    });

    $('#data').append(e);
  });
  $("#remove").click(function() {
    var tr = $("#parent:last-child");
    if (i > 1) {
      i--;
      tr.remove();
    }
    if (i == 1) {
      $("#remove").attr("disabled", "true");
    }
  });
});
body {
  width: 700px;
}

table {
  width: 100%;
}

input[type="text"] {
  width: 130px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="data" name="data">
  <tr>
    <td colspan="9">
      <input type="button" value="Add" name="clone" id="clone">
      <input type="button" value="Remove" name="remove" id="remove">
    </td>
  </tr>
  <tr align="center">
    <td rowspan="2">N°</td>
    <td rowspan="2">Activity</td>
    <td rowspan="2">Field1</td>
    <td rowspan="2">Resources</td>
    <td colspan="2">Dates</td>
    <td rowspan="2">Field2</td>
    <td rowspan="2">Date 1</td>
    <td rowspan="2">Status</td>
  </tr>
  <tr align="center">
    <td>Start Date</td>
    <td>End Date</td>
  </tr>
  <tr name="parent" id="parent">
    <td align="center">
      <input id="val[]" name="val[]" type="text" value="1" required>
      <input id="val[]" name="val[]" type="hidden" value="13256">
    </td>
    <td align="center">
      <input id="val[]" name="val[]" type="text" value="2" required>
    </td>
    <td align="center">
      <input id="val[]" name="val[]" type="text" value="3" required>
    </td>
    <td align="center">
      <input id="val[]" name="val[]" type="text" value="4" required>
    </td>
    <td align="center">
      <input id="val[]" name="val[]" type="text" value="5" required>
    </td>
    <td align="center">
      <input id="val[]" name="val[]" type="text" value="6" required>
    </td>
    <td align="center">
      <input id="val[]" name="val[]" type="text" value="7" required>
    </td>
    <td align="center">
      <input id="val[]" name="val[]" type="text" value="8" required>
    </td>
    <td align="center">
      <input id="val[]" name="val[]" type="text" value="9" required>
    </td>
  </tr>
</table>
<table>
  <tr>
    <td>Hello world!</td>
  </tr>
</table>

于 2016-07-23T16:34:09.840 に答える
0

セレクターを変更し、.after()追加に使用します

var tr = $("#parent:last");

    var e = $("#parent").clone();
    $(tr).after(e);

フルJS

$(document).ready(function() {
  var i = 1;
  $("#clone").click(function() {
    i++;
    $("#remove").removeAttr("disabled");
    var tr = $("#parent:last");

    var e = $("#parent").clone();
    $(tr).after(e);
    console.log(e);
    $(e).find("[type=text],[type=hidden]").each(function() {
      $(this).val('');
    });
  });
  $("#remove").click(function() {
    var tr = $("#parent:last-child");
    if (i > 1) {
      i--;
      tr.remove();
    }
    if (i == 1) {
      $("#remove").attr("disabled", "true");
    }
  });
});

JSFIDDLE

于 2016-07-23T16:32:11.957 に答える