我正在创建一个匹配的游戏,我正在尝试从数组中添加一个类来匹配。 我下面的代码创建了我需要的类,然后将它们随机化。
我的问题在于randomizeDeck函数。 我正在尝试将每个类添加到指定的元素两次。 当我在console.log中将代码添加到前六个元素而不是最后六个元素的代码时,我需要它这样做,以便在我正在创建的匹配游戏中有匹配的类。
var cardDeck = new Array(); function createDeck() { for (i = 1; i <= 6; i++) { cardDeck.push("card-" + i); } } createDeck(); var randDeck = cardDeck.sort(randOrd); function randomizeDeck() { card.each(function(i){ $(this).addClass(randDeck[i]); }); } randomizeDeck();
我建议一个单独的变量来跟踪索引,而不是each
索引。 一旦你完成了一次包装,再次洗牌可能是一个好主意,所以第二遍的顺序是不同的。 因人而异。
function sortCards(randOrd) { randDeck = cardDeck.sort(randOrd); } function randomizeDeck() { var count = 0; cards.each(function(i) { if (i === 6) { count = 0; sortCards(randOrd); } $(this).addClass(randDeck[count]); count++; }); }
我认为你的createDeck函数需要创建12个类而不是6个。只需将每个类推两次:
function createDeck() { for (i = 1; i <= 6; i++) { cardDeck.push("card-" + i); cardDeck.push("card-" + i); } }
然后你将有一个由12个类组成的数组(6个独特类中的2个),这些类将被随机化并分配给12个卡。
可以重写randomizeDeck()函数以使用相同的类名数组两次:
function randomizeDeck() { card.each(function(i){ if(i < 6) $(this).addClass(randDeck[i]) else $(this).addClass(randDeck[i-6]); }); }
注意:我会将变量card
重写为$cards
以便您知道它是一个jQuery对象,在这种情况下是它们的集合。 否则,很难说它除了任何其他javascript var。
试试这样的东西 – 它现在经过测试更新了看这个小礼物https://jsfiddle.net/8XBM1/1/
var cardDeck = new Array(); function createDeck() { for (i = 1; i <= 6; i++) { cardDeck.push("card-" + i); } } createDeck(); var randDeck = cardDeck.sort(); alert(randDeck); function randomizeDeck() { var x = 0; $('div').each(function(i){ if ( i > 5) { $(this).addClass(randDeck[x]); x++; } else { $(this).addClass(randDeck[i]); } }); } randomizeDeck();
以上就是jQuery教程分享从使用jQuery复制的数组中向元素添加随机类相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/jquerytutorial/547972.html