diff --git a/src/htmx.js b/src/htmx.js index cabe02e1..5e56947b 100644 --- a/src/htmx.js +++ b/src/htmx.js @@ -812,7 +812,8 @@ return (function () { forEach(fragment.querySelectorAll("[id]"), function (newNode) { if (newNode.id && newNode.id.length > 0) { var normalizedId = newNode.id.replace("'", "\\'"); - var oldNode = parentNode.querySelector(newNode.tagName + "[id='" + normalizedId + "']"); + var normalizedTag = newNode.tagName.replace(':', '\\:'); + var oldNode = parentNode.querySelector(normalizedTag + "[id='" + normalizedId + "']"); if (oldNode && oldNode !== parentNode) { var newAttributes = newNode.cloneNode(); cloneAttributes(newNode, oldNode); diff --git a/test/core/ajax.js b/test/core/ajax.js index 58ae09bf..b6ea1123 100644 --- a/test/core/ajax.js +++ b/test/core/ajax.js @@ -979,4 +979,14 @@ describe("Core htmx AJAX Tests", function(){ } }); + it('should load tags with colon in their names', function() { + this.server.respondWith('GET', '/test', 'Foobar'); + + var btn = make(''); + btn.click(); + this.server.respond(); + + btn.innerHTML.should.equal('Foobar'); + }); + })