I've been having a lot of problems with jQuery 1.3.2。这是一个Joomla网站,因此Mootools也包含在页面中(并且删除Mootools太难了)。基本上问题是用一个选择器调用基本jQuery选择器(例如:"a", ".myClass"
,不 "html a", ".myClass td"
),只会返回第一个元素。
我已经完成了代码并将其缩小到Sizzle引擎中的这个功能:
(参见自己,第2058行jquery.js)
var makeArray = function(array, results) {
array = Array.prototype.slice.call( array );
if ( results ) {
results.push.apply( results, array );
return results;
}
return array;
};
我会再次在这里写下评论,以显示我在调用jQuery("a")
后记录的值:
var makeArray = function(array, results) {
// "array" is an array of all the 58 links on the page
// "results" is an empty jQuery object
array = Array.prototype.slice.call( array );
// array is unchanged.
if ( results ) { // true
results.push.apply( results, array );
// "results" is now an array only holding the FIRST element.
return results;
}
return array;
};
有人可以向我解释这段代码吗?还有为什么它除了我的一个元素之外什么呢?
答案 0 :(得分:6)
push
方法,它只将第一个元素推送到数组中,而这个方法被调用了常规jQuery方法。
因此,对于升级后遇到奇怪内容的所有人,请注意这一点:检查插件的兼容性!!