From 86ecf0f60182c63eecb45c7cc836fe5a050d8d8a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Aleksander=20=C5=81ukasz?= Date: Mon, 8 Jul 2013 12:30:34 +0200 Subject: [PATCH] DocumentElement.childIndex --- modules/documentCanvas/canvas/canvas.test3.js | 9 +++++++++ modules/documentCanvas/canvas/documentElement.js | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/modules/documentCanvas/canvas/canvas.test3.js b/modules/documentCanvas/canvas/canvas.test3.js index 778c4bf..a92ddb3 100644 --- a/modules/documentCanvas/canvas/canvas.test3.js +++ b/modules/documentCanvas/canvas/canvas.test3.js @@ -20,6 +20,15 @@ describe('Canvas', function() { var c = canvas.fromXML('
'); expect(c.doc().wlxmlTag).to.equal('section'); }); + + describe('DocumentElement', function() { + it('knows index of its child', function() { + var c = canvas.fromXML('
'), + root = c.doc(), + child = root.children()[1]; + expect(root.childIndex(child)).to.equal(1); + }); + }); }); describe('document representation api', function() { diff --git a/modules/documentCanvas/canvas/documentElement.js b/modules/documentCanvas/canvas/documentElement.js index 5e3983e..d1973b8 100644 --- a/modules/documentCanvas/canvas/documentElement.js +++ b/modules/documentCanvas/canvas/documentElement.js @@ -43,6 +43,18 @@ $.extend(DocumentElement.prototype, { wrapWithNodeElement: function(wlxmlNode) { this.$element.wrap($('<' + wlxmlNode.tag + ' class="' + wlxmlNode.klass + '"">')[0]); return documentElementFromHTMLElement(this.$element.parent().get(0)); + }, + + childIndex: function(child) { + var children = this.children(), + toret = null; + children.forEach(function(c, idx) { + if(c.sameNode(child)) { + toret = idx; + return false; + } + }); + return toret; } }); -- 2.20.1