appending node elements
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 8 Jul 2013 09:35:16 +0000 (11:35 +0200)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 8 Jul 2013 09:35:16 +0000 (11:35 +0200)
modules/documentCanvas/canvas/canvas.test3.js
modules/documentCanvas/canvas/documentElement.js

index 76550cd..8af9797 100644 (file)
@@ -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('<section></section>'),
+                        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('<section><div></div></section>'),
index 530f854..9befd7e 100644 (file)
@@ -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);