jquery - jQuery 1.3.1 中的 "elems.sort is not a function"

标签 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?

最佳答案

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); });

关于jquery - jQuery 1.3.1 中的 "elems.sort is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5293131/

相关文章:

jquery - 绕过 jQuery 和 AJAX 中的 SSL 证书错误

javascript - 外部值变化的 jQuery slider

arrays - 在VBA中,如何使用函数返回数组/或写入单元格?

jquery - 寻找最好的 jquery 插件

javascript - jQuery 插件 Tablesorter 对日期排序不正确

javascript - 通过 AJAX 将 POST strip 化到 flask

javascript - 使用 window.location.href 进行完全重定向

c - 我不断收到错误消息 : "Conflicting types for ' sqrt' "

javascript - 检查是否定义了 javascript 对象/属性

jquery-ui - 使用jquery进行jsp ajax调用