Как сделать полную копию всего тела, добавить его в другую таблицу и использовать все его функции JS? - PullRequest
0 голосов
/ 19 сентября 2019

Я хотел бы глубоко скопировать таблицу TBODY одним нажатием кнопки и сделать так, чтобы она отображалась под другой таблицей на веб-странице.Я не могу выполнить мелкое копирование, поскольку внутри ячеек есть кнопки с несколькими функциями, которые я хотел бы использовать в скопированном теле, и чтобы они применялись только к скопированным элементам.Я загрузил и сослался на lodash в своем HTML-файле, так как слышал, что с ним гораздо проще копировать.Проблема здесь в том, что я не знаю, как применить его как функцию onclick.

Мой код беспорядок, так как в игре так много разных функций, поэтому я не буду загружать его здесь.Я думаю, что я подготовлю сокращенную версию.

<table id="my-table">
  <tbody id="my-tbody">
    <tr>
     <td>Example text</td>
     <td><input type="text" id="input-text" onkeydown="keyDown()"></td>
     <td>Example text</td>
     <td><button id="check-btn" type="button" 
      onclick="checkInput()">check</button></td>
  </tr>
 </tbody>
</table>

Как видите, кнопки внутри tds, а также поле ввода имеют свои индивидуальные функции.Теперь я хотел бы глубоко скопировать весь текст одним нажатием кнопки и сделать так, чтобы он отображался здесь:

<table id="my-table2>
<tr>


</tr>
</table>

Я использовал это для мелкого копирования текста:

<button type="button" onclick="duplicate()">example-btn</button>

function duplicate() {
var itm = document.getElementById("my-tbody");
var cln = itm.cloneNode(true);
document.getElementById("my-table2").appendChild(cln);
}

..... и работает нормально, проблема в том, что клонированные кнопки влияют на исходные ячейки.

Как я уже сказал, я скачал lodash и хотел бы использовать функцию _.cloneDeep(), но я понятия не имеюкак это сделать.Некоторые вопросы:

1) Возможно ли глубокое клонирование, используя только чистый JS?2) Могу ли я использовать _.cloneDeep() при нажатии кнопки?Если да, как я могу этого достичь?

Спасибо за ваше время и ответы.Это действительно важно для моего проекта!:)

...