return node && (node.nativeNode === this.nativeNode || node._$.parents().index(this._$) !== -1);
},
+ getFirstTextNode: function() {
+ return this._getTextNode('first');
+ },
+
getLastTextNode: function() {
+ return this._getTextNode('last');
+ },
+
+ _getTextNode: function(which) {
var contents = this.contents(),
toret;
-
- contents.reverse().some(function(node) {
+ if(which === 'last') {
+ contents = contents.reverse();
+ }
+ contents.some(function(node) {
if(node.nodeType === Node.TEXT_NODE) {
toret = node;
return true;
var TextNode = function(nativeNode, document) {
DocumentNode.call(this, nativeNode, document);
+ this._data = Object.create({});
nativeNode.__smartxmlTextNodeInstance = this;
};
TextNode.prototype = Object.create(DocumentNode.prototype);
$.extend(TextNode.prototype, {
nodeType: Node.TEXT_NODE,
+ setData: function(arg1, arg2) {
+ if(arguments.length === 2) {
+ if(_.isUndefined(arg2)) {
+ delete this._data[arg1];
+ } else {
+ this._data[arg1] = arg2;
+ }
+ } else {
+ this._data = _.extend({}, arg1);
+ }
+ },
+
+ getData: function(key) {
+ if(key) {
+ return this._data[key];
+ }
+ return this._data;
+ },
+
getText: function() {
return this.nativeNode.data;
},