У меня было много проблем с jQuery 1.3.2 только на одном из моих сайтов. Это сайт Joomla, поэтому Mootools также присутствует на странице (и удалить Mootools слишком сложно). В основном проблема заключается в том, что вызов базового селектора jQuery с одним селектором (например: "a", ".myClass"
, not "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;
};
Может кто-нибудь объяснить мне этот код? А также почему он избавляется от всех, кроме одного из моих элементов ??