jQuery 1.3.1中的“elems.sort不是函数”

时间:2011-03-13 23:07:55

标签: jquery function jquery-plugins jquery-1.3.2

我需要为我正在使用html / jquery构建的小游戏随机选择答案选项。

我在2009年10月发现了一个由Russ Cam在Stack Overflow上共享的jQuery Randomize 插件 (见这里:Randomize a sequence of div elements with jQuery)。

这个插件非常适合作为解决方案....除了......

由于某种原因,它似乎不适用于jQuery 1.3.1。 Firebug在此行引发错误(“ elems.sort不是函数”):

elems.sort(function() { return (Math.round(Math.random())-0.5); }); 

现在,如果我在我的测试文件中包含jQuery 1.3.2而不是1.3.1,它就像魔法一样。

但有一点问题。我正在构建游戏的网站被锁定在jQuery 1.3.1中。这是无法改变的。

所以,有两件事:

  1. 任何人都可以帮我理解错误,或者为什么它不起作用?在jQuery 1.3.1中它被破坏或丢失的是什么?我是js / jquery的新手。

  2. 有人可以建议解决方法吗?写一行可能在1.3.1中起作用的另一种方法是什么?

1 个答案:

答案 0 :(得分:4)

jQuery 1.3.2 开始,jQuery代理本地Array.prototype.sort函数以使用jQuery对象。

使用 jQuery 1.3.1 ,您无法在jQuery对象上直接使用sort,但将jQuery对象转换为本机数组以应用排序非常容易于:

var elems = $this.children(childElem).get(); // notice the .get()
elems.sort(function() { return (Math.round(Math.random())-0.5); });