私のサイトの 1 つだけで、jQuery 1.3.2 で多くの問題が発生しています。これは Joomla サイトなので、Mootools もページに含まれています (Mootools を削除するのは非常に困難です)。基本的に問題は、基本的な jQuery セレクターを 1 つのセレクター (例: "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;
};
誰かが私にこのコードを説明できますか? また、なぜ私の要素の1つを除いてすべてを取り除くのですか??