summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/htmx.js16
-rw-r--r--test/core/regressions.js10
2 files changed, 18 insertions, 8 deletions
diff --git a/src/htmx.js b/src/htmx.js
index 759c9edc..22cfb1e4 100644
--- a/src/htmx.js
+++ b/src/htmx.js
@@ -379,13 +379,15 @@ return (function () {
function handleAttributes(parentNode, fragment, settleInfo) {
forEach(fragment.querySelectorAll("[id]"), function (newNode) {
- var oldNode = parentNode.querySelector(newNode.tagName + "[id=" + newNode.id + "]")
- if (oldNode && oldNode !== parentNode) {
- var newAttributes = newNode.cloneNode();
- cloneAttributes(newNode, oldNode);
- settleInfo.tasks.push(function () {
- cloneAttributes(newNode, newAttributes);
- });
+ if (newNode.id && newNode.id.length > 0) {
+ var oldNode = parentNode.querySelector(newNode.tagName + "[id=" + newNode.id + "]");
+ if (oldNode && oldNode !== parentNode) {
+ var newAttributes = newNode.cloneNode();
+ cloneAttributes(newNode, oldNode);
+ settleInfo.tasks.push(function () {
+ cloneAttributes(newNode, newAttributes);
+ });
+ }
}
});
}
diff --git a/test/core/regressions.js b/test/core/regressions.js
index ccb3d240..a3108fdb 100644
--- a/test/core/regressions.js
+++ b/test/core/regressions.js
@@ -49,7 +49,7 @@ describe("Core htmx Regression Tests", function(){
form.innerHTML.should.equal("variable=")
});
- it ('name=id doesnt cause an error, function()', function(){
+ it ('name=id doesnt cause an error', function(){
this.server.respondWith("GET", "/test", "Foo<form><input name=\"id\"/></form>")
var div = make('<div hx-get="/test">Get It</div>')
div.click();
@@ -57,4 +57,12 @@ describe("Core htmx Regression Tests", function(){
div.innerText.should.equal("Foo")
});
+ it ('empty id doesnt cause an error', function(){
+ this.server.respondWith("GET", "/test", "Foo<div id=''></div>")
+ var div = make('<div hx-get="/test">Get It</div>')
+ div.click();
+ this.server.respond();
+ div.innerText.should.equal("Foo")
+ });
+
})