Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sizzle中的makeArray函数(jQuery 1.3)_Jquery_Sizzle - Fatal编程技术网

Sizzle中的makeArray函数(jQuery 1.3)

Sizzle中的makeArray函数(jQuery 1.3),jquery,sizzle,Jquery,Sizzle,在我的一个网站上。这是一个Joomla站点,所以Mootools也包含在页面中(删除Mootools太困难了)。基本上,问题是用一个选择器调用基本jQuery选择器(例如:“a”、“.myClass”,而不是“html a”、“.myClass td”)只会返回第一个元素 我已经详细介绍了代码,并将其缩小到Sizzle引擎中的此函数: (请参见第2058行) 我将在这里再次写出来,并附上注释,以显示调用jQuery(“a”)后记录的值: 有人能给我解释一下这个代码吗?还有为什么它除了我的一个元素

在我的一个网站上。这是一个Joomla站点,所以Mootools也包含在页面中(删除Mootools太困难了)。基本上,问题是用一个选择器调用基本jQuery选择器(例如:
“a”、“.myClass”
,而不是
“html a”、“.myClass td”
)只会返回第一个元素

我已经详细介绍了代码,并将其缩小到Sizzle引擎中的此函数:
(请参见第2058行)

我将在这里再次写出来,并附上注释,以显示调用
jQuery(“a”)
后记录的值:


有人能给我解释一下这个代码吗?还有为什么它除了我的一个元素外,其他元素都消失了???

啊,我终于找到了。我使用的是与jQuery 1.3+不兼容的较旧版本,它定义了自己的
push
方法,该方法只将第一个元素推送到数组中,并调用该方法而不是常规的jQuery方法


所以,让这句话作为一个警告,提醒所有在升级后遇到奇怪事情的人:检查插件的兼容性

啊,我终于找到了。我使用的是与jQuery 1.3+不兼容的较旧版本,它定义了自己的
push
方法,该方法只将第一个元素推送到数组中,并调用该方法而不是常规的jQuery方法

所以,让这句话作为一个警告,提醒所有在升级后遇到奇怪事情的人:检查插件的兼容性

var makeArray = function(array, results) {
    array = Array.prototype.slice.call( array );
    if ( results ) {
        results.push.apply( results, array );
        return results;
    }
    return array;
};
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;
};