这可能不是最优雅的解决方案,但您可以检查 find 函数是否存在,如果不存在则将其添加到 jquery 对象中。
就像是
if (!$.find) {
$.fn.find = function () {
// find function definition
};
}
编辑:更好的条件:
var version = $.fn.jquery.split('.');
if (version[0] < 2 && version[1] <= 6 && version[2] < 4)
最后编辑:由于 jsfiddle 的 jquery 不少于 1.6.4,我无法对此进行测试以验证,但我从 google 的 cdn jquery 1.6.4 中提取了 find 函数,因此完整的 monkeypatch 将是:
var version = $.fn.jquery.split('.');
if (version[0] < 2 && version[1] <= 6 && version[2] < 4) {
$.find = function( expr, context, isXML ) {
var set;
if ( !expr ) {
return [];
}
for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
var match,
type = Expr.order[i];
if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
var left = match[1];
match.splice( 1, 1 );
if ( left.substr( left.length - 1 ) !== "\\" ) {
match[1] = (match[1] || "").replace( rBackslash, "" );
set = Expr.find[ type ]( match, context, isXML );
if ( set != null ) {
expr = expr.replace( Expr.match[ type ], "" );
break;
}
}
}
}
if ( !set ) {
set = typeof context.getElementsByTagName !== "undefined" ?
context.getElementsByTagName( "*" ) :
[];
}
return { set: set, expr: expr };
};