我只在我的一个网站上遇到了很多关于 jQuery 1.3.2 的问题。这是一个 Joomla 站点,所以 Mootools 也包含在页面上(而且移除 Mootools 太难了)。"a", ".myClass"
基本上问题是用一个选择器(例如: ,not )调用基本的jQuery选择器"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;
};
有人可以向我解释这段代码吗?还有为什么它除了我的一个元素之外都摆脱了?