From 1d8d7b5fad1547bc2356f2e69e18ca597c969d9b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Aleksander=20=C5=81ukasz?= Date: Mon, 8 Jul 2013 11:35:16 +0200 Subject: [PATCH] appending node elements --- modules/documentCanvas/canvas/canvas.test3.js | 16 ++++++++++++++++ modules/documentCanvas/canvas/documentElement.js | 10 ++++++++++ 2 files changed, 26 insertions(+) diff --git a/modules/documentCanvas/canvas/canvas.test3.js b/modules/documentCanvas/canvas/canvas.test3.js index 76550cd..8af9797 100644 --- a/modules/documentCanvas/canvas/canvas.test3.js +++ b/modules/documentCanvas/canvas/canvas.test3.js @@ -117,6 +117,22 @@ describe('Canvas', function() { }) describe('manipulation api', function() { + + + + describe('Basic Element inserting', function() { + it('can put new NodeElement at the end', function() { + var c = canvas.fromXML('
'), + appended = c.doc().append({tag: 'header', klass: 'some.class'}), + children = c.doc().children(); + + expect(children.length).to.equal(1); + expect(children[0].sameNode(appended)); + }); + + //it('can') + }); + describe('wrapping', function() { it('wraps DocumentNodeElement', function() { var c = canvas.fromXML('
'), diff --git a/modules/documentCanvas/canvas/documentElement.js b/modules/documentCanvas/canvas/documentElement.js index 530f854..9befd7e 100644 --- a/modules/documentCanvas/canvas/documentElement.js +++ b/modules/documentCanvas/canvas/documentElement.js @@ -57,6 +57,16 @@ var DocumentTextElement = function(htmlElement) { DocumentNodeElement.prototype = new DocumentElement(); DocumentTextElement.prototype = new DocumentElement(); +$.extend(DocumentNodeElement.prototype, { + append: function(params) { + var to_append = $('<' + params.tag + '>'); + if(params.klass) + to_append.attr('class', params.klass); + this.$element.append(to_append); + return documentElementFromHTMLElement(to_append); + } +}) + var documentElementFromHTMLElement = function(htmlElement) { if(htmlElement.nodeType === Node.ELEMENT_NODE) return new DocumentNodeElement(htmlElement); -- 2.20.1