diff --git a/src/nodes/html.ts b/src/nodes/html.ts index b24cbe8..5708e33 100644 --- a/src/nodes/html.ts +++ b/src/nodes/html.ts @@ -158,7 +158,7 @@ export default class HTMLElement extends Node { return 'null'; } - return JSON.stringify(attr.replace(/"/g, '"')); + return JSON.stringify(attr.replace(/"/g, '"')).replace(/\\t/g, '\t').replace(/\\n/g, '\n').replace(/\\r/g, '\r'); } /** diff --git a/test/tests/issues/240.js b/test/tests/issues/240.js new file mode 100644 index 0000000..ea9046c --- /dev/null +++ b/test/tests/issues/240.js @@ -0,0 +1,13 @@ +const { parse } = require('@test/test-target'); + +describe('issue 240', function () { + it(`attribute should not changed`, function () { + const html = "
"; + const root = parse(html); + const div = root.firstChild + div.toString().should.eql(html); + + div.setAttribute("append", "newAttribute"); + div.toString().should.eql('
'); + }); +});