FlyDomNode: {
__constructor: function(context) {
var array = fnNodeList.makeDomNodeArray(context);
for (var a = 0, al = array.length; a < al; a++) {
this[a] = array[a];
}
this.length = al;
},
size: function() {
return this.length;
},
get: function(index) {
return $.isNumber(index) ? this[index] : [].slice.call(this);
},
addNode: function(flyNode) {
return fnNodeList.changeNodeContext(this, flyNode, function(child, context) {
context.indexOf(child) === -1 && context.push(child);
});
},
removeNode: function(flyNode) {
return fnNodeList.changeNodeContext(this, flyNode, function(child, context) {
var position = context.indexOf(child);
if (position !== -1) context.splice(position, 1);
});
},
eq: function(index) {
if (index < 0) index = index + this.length;
return new this.__self(this[index]);
},
lt: function(index) {
return new this.__self(this.slice(0, index));
},
gt: function(index) {
return new this.__self(this.slice(index));
},
last: function(selector) {
var element = this[this.length - 1];
return new this.__self(fnStyle.isMatch(element, selector) ? element : []);
},
first: function(selector) {
var element = this[0];
return new this.__self(fnStyle.isMatch(element, selector) ? element : []);
},
normalize: function() {
return fnNodeList.transformNodeContext(this, function(item, context) {
if ($.isNode(item)) context.push(item);
});
},
each: function(callback, context) {
$.each(this, callback, context);
return this;
},
name: function() {
return this[0].tagName.toLowerCase() || null;
}
}
$(...).grep(iterator, [context])
Возвращает: FlyNode [$]
Фильтрует узлы в текущей FlyNode.
iterator: Function ()
Функция-итератор, выступающая в роли фильтра узлов.
context: Any *
Контекст выполнения функции-итератора.
Функция iterator
должна вернуть либо true
(для узлов, которые останутся), либо false
(для узлов, которые отфильтруются).
Обратите внимание, что в отличие от метода $.grep()
здесь нет флага invert
.
Пример: Фильтрация узлов во FlyNode.
<!DOCTYPE html>
<head>
<meta charset="utf-8"/>
<title>Fly.js - $(...).grep()</title>
<script src="/scripts/fly.js"></script>
</head>
<body>
<span>Hello!</span><span>abc</span><span>World!</span>
<div></div>
<script>
$('div').html($('span').grep(function() {
return $(this).html().indexOf('!') !== -1;
}).size());
</script>
</body>
</html>