【发布时间】:2015-04-16 08:44:27
【问题描述】:
我正在为一个小项目构建一个非常简单的记忆游戏。逻辑如下:
- 点击输入框选择你想玩多少对
- 创建具有 card1、card2 等类的 div。
- 克隆 div 并随机化它们在数组中的位置
这是我的脚本(JSFiddle 中的 fork):
$(".button").click(function () {
// get the value from the input
var numCards = parseInt($('input').val());
for (var i = 1; i <= numCards; i++) {
// create the cards
$(".container").append("<div class='card" + i + " cards'></div>") &&
$(".card" + i).clone().appendTo(".container");
}
// randomize cards in stack
var cards = $(".cards");
for (var i = 0; i < cards.length; i++) {
var target = Math.floor(Math.random() * cards.length - 1) + 1;
var target2 = Math.floor(Math.random() * cards.length - 1) + 1;
var target3 = Math.floor(Math.random() * cards.length - 1) + 1;
cards.eq(target).before(cards.eq(target2)).before(cards.eq(target3));
}
});
我现在需要的是调整第3步,即动态创建目标变量,以及代码的最后一行
cards.eq(target).before(cards.eq(target2)).before(cards.eq(target3));
所以请给我一个建议 - 你会怎么做?请记住,这是一个面向初学者的项目。谢谢!
【问题讨论】:
-
为什么不在创建 div 时随机化类名 (
card%i%) 中的索引?那么你就不需要打乱 DOM 元素了。 -
我建议你把所有的牌放在一个数组中,然后洗牌
-
想尝试一下,请添加您的答案并解释一下并添加更新的脚本
标签: javascript jquery arrays random