Учитывая ваш конкретный сценарий, я бы посоветовал вам вернуться к простым строкам.
let canvas = '<div>1</div><div>2</div>';
let editor = '<div></div>';
canvas += editor;
initializeEditor($(canvas));
Или что-то в этом роде.Теперь, почему я предлагаю это?Так как каждый раз, когда вы делаете $(html)
, вы заставляете jQuery анализировать html на узлах DOM во фрагменте документа.Переключаясь обратно на строки, вы удаляете эти две операции в пользу простой конкатенации строк.
Затем, когда у вас есть HTML, вы можете передать его в свой метод как объект jQuery, если вам нужно, чтобы он был похожто потом.
В противном случае вы можете либо уменьшить область действия элементов, которые вы вставляете после ...
$editor.insertAfter($canvas.last())
, либо просто добавить элемент в конец стека результатов объекта jQuery....
$canvas.add(...html...)