Merge pull request #350 from andyhorng/hx-preserve-fix

Handle preserved element that might not be existing
This commit is contained in:
1cg 2021-02-05 11:11:51 -07:00 committed by GitHub
commit 8c3ced2573
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View File

@ -497,7 +497,9 @@ return (function () {
forEach(findAll(fragment, '[hx-preserve], [data-hx-preserve]'), function (preservedElt) {
var id = getAttributeValue(preservedElt, "id");
var oldElt = getDocument().getElementById(id);
preservedElt.parentNode.replaceChild(oldElt, preservedElt);
if (oldElt != null) {
preservedElt.parentNode.replaceChild(oldElt, preservedElt);
}
});
}

View File

@ -17,5 +17,14 @@ describe("hx-preserve attribute", function () {
byId("d2").innerHTML.should.equal("New Content");
})
it('handles preserved element that might not be existing', function () {
this.server.respondWith("GET", "/test", "<div id='d1' hx-preserve>New Content</div><div id='d2'>New Content</div>");
var div = make("<div hx-get='/test'><div id='d2'>Old Content</div></div>");
div.click();
this.server.respond();
byId("d1").innerHTML.should.equal("New Content");
byId("d2").innerHTML.should.equal("New Content");
})
});