Есть функция поиска элементов:
Q = function( params, context ) {
if ( !( params instanceof Object || params instanceof Function ) ) {
return params;
}
var elements = ( document || context ).getElementsByTagName( "*" ),
finds = [];
for ( var i = 0; i < elements.length; i++ ) {
if ( typeof params != "function" ) {
var a = 0,
x = 0;
for ( var z in params ) {
if ( elements[i][z] == params[z] ) {
a++;
}
x++;
}
if ( a == x ) {
finds.push( elements[i] );
}
} else {
if ( params.call( elements[i] ) ) {
finds.push( elements[i] );
}
}
}
finds.params = params;
finds.context = context;
return finds;
};
И, собственно, сама функция фильтрования:
Object.prototype.filter = function( params, context ) {
var wrapper = document.createElement( "DIV" );
for ( var i = 0; i < this.length; i++ ) {
wrapper.appendChild( this[i] );
}
return Q( params, wrapper );
}
Казалось бы, всё просто: заносим элементы в обёрточный DIV и ищем в нём через Q() элементы. Но консоль пишет
Цитата:
|
Uncaught exception: TypeError: Array.prototype.filter: callbackfn is not a callable object
|
В чём проблема?