“elems.sort 不是函数”在 jQuery 1.3.1 中
我需要随机化我正在使用 html/jquery 构建的小游戏的答案选择。
我在 2009 年 10 月发现了 Russ Cam 在 Stack Overflow 上分享的 jQuery Randomize 插件 (请参见此处:使用 jQuery 随机化 div 元素序列)。
这个插件作为一个解决方案非常有效......除了......
由于某种原因它似乎不适用于 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。这是无法改变的。
所以,有两件事:
任何人都可以帮助我理解出了什么问题,或者为什么它不起作用? jQuery 1.3.1 中损坏或缺失了什么?我是 js/jquery 的新手。
有人可以提出解决方法吗?编写该行的另一种方法可能在 1.3.1 中有效?
I needed to randomize answer choices for a little game I'm building using html/jquery.
I came across a jQuery Randomize plugin shared by Russ Cam on Stack Overflow on Oct. 2009
(see here: Randomize a sequence of div elements with jQuery).
This plugin works great as a solution.... EXCEPT...
For some reason it doesn't seem to work with jQuery 1.3.1. Firebug throws an error ("elems.sort is not a function") on this line:
elems.sort(function() { return (Math.round(Math.random())-0.5); });
Now, if I include jQuery 1.3.2 on my test file instead of 1.3.1, it works like magic.
But there's the rub. The site I'm building the game for is locked into jQuery 1.3.1. That cannot be changed.
So, two things:
Can anyone help me understand what is wrong, or why it's not working? What is it that is broken or missing in jQuery 1.3.1? I am new to js/jquery.
Can anyone suggest a workaround? An alternate way to write that line that might work in 1.3.1?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从 jQuery 1.3.2 开始,jQuery 代理原生
Array.prototype.sort
函数来处理 jQuery 对象。使用jQuery 1.3.1,您不能直接在 jQuery 对象上使用
sort
,但是将 jQuery 对象转换为本机数组以应用排序是很容易的在:From jQuery 1.3.2 onwards, jQuery proxied the native
Array.prototype.sort
function to work with a jQuery object.With jQuery 1.3.1, you can't directly use
sort
on a jQuery object, but it is easy enough to convert a jQuery object to a native array to apply the sort on: