From e002a72cd05229f4747aec88ca535c683e1da288 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Aleksander=20=C5=81ukasz?= Date: Mon, 8 Jul 2013 14:55:01 +0200 Subject: [PATCH 1/1] DocumentTextNode.after --- modules/documentCanvas/canvas/canvas.test3.js | 13 +++++++++++++ modules/documentCanvas/canvas/documentElement.js | 14 ++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/modules/documentCanvas/canvas/canvas.test3.js b/modules/documentCanvas/canvas/canvas.test3.js index 77c6871..3a3ea44 100644 --- a/modules/documentCanvas/canvas/canvas.test3.js +++ b/modules/documentCanvas/canvas/canvas.test3.js @@ -174,6 +174,19 @@ describe('Canvas', function() { expect(children.length).to.equal(2); expect(children[0].sameNode(added)); }); + + it('can put new DocumentNodeElement after DocumentTextElement', function() { + var c = canvas.fromXML('
Alice
'), + text = c.doc().children()[0], + added = text.after({tag: 'p'}), + children = c.doc().children(); + + expect(children.length).to.equal(2); + expect(children[0]).to.be.instanceOf(documentElement.DocumentTextElement); + expect(children[0].getText()).to.equal('Alice'); + expect(children[1]).to.be.instanceOf(documentElement.DocumentNodeElement); + expect(children[1].sameNode(added)).to.be.true; + }); }); describe('wrapping', function() { diff --git a/modules/documentCanvas/canvas/documentElement.js b/modules/documentCanvas/canvas/documentElement.js index aca727a..6fea275 100644 --- a/modules/documentCanvas/canvas/documentElement.js +++ b/modules/documentCanvas/canvas/documentElement.js @@ -111,6 +111,20 @@ $.extend(DocumentTextElement.prototype, { }, getText: function() { return this.$element.text(); + }, + after: function(params) { + if(params.text || params instanceof DocumentTextElement) + return false; + var dom; + if(params instanceof DocumentNodeElement) { + dom = params.dom(); + } else { + dom = DocumentNodeElement.createDOM(params); + } + this.$element.wrap('
'); + this.$element.parent().after(dom[0]); + this.$element.unwrap(); + return documentElementFromHTMLElement(dom[0]); } }); -- 2.20.1