Помимо того, что правильно и что плохо в вашем коде, здесь объясняется, что происходит в вашем коде.
Возникшая ошибка связана с добавлением элемента DOM none к телу HTML, поэтому, если вы console.log(b, typeof b)
зарегистрирует следующее:
k.fn.init [p#par1, prevObject: k.fn.init(3)] "object"
здесь происходит то, что ваш код let a = $(data).contents().clone();
создаст javascript объектный массив из ваших тегов HTML и назначит его переменной a
, затем вы держите ссылку на элемент массива, в котором он имеет идентификатор par1
. и это по-прежнему javascript Object
, поэтому при вызове a. html () он преобразует все элементы a
в текст и DOM
, а переменная b
содержит ссылку на один из них. из этих HTML элементов, поэтому вашему коду необходим. html (), или вы также можете получить его следующим образом:
$.get("template.html",function(data) {
let a = $(data).contents().clone();
let b = a.find("#par1")
$("body").append(b.html())
})