因此,我正在制作一个小型闪存卡应用程序在rails中,并且我正在为卡逻辑使用javascript。我是新来的JS,我有当我运行randomCard
功能elem.innerHTML = rand.back;
与新的“更新了一些麻烦resetting
的variables
我根据我的randomizing function
试图用JavaScript函数设置一个全局变量
<script>
var card_list = "<%=j @deck.cards.to_json.html_safe %>";
console.log(card_list)
/* Parse the Json and get all the cards */
var cards = JSON.parse(card_list);
/* Return json object count */
var length = Object.keys(cards).length;
console.log(length)
/* Grab a random card from the card list */
var rand = cards[Math.floor(Math.random() * cards.length)];
console.log(rand)
/* Set the front label from random value */
var front = rand.front;
console.log(front)
/* Set the back label from random value */
var back = rand.back;
console.log(back)
/* Grab the div and set the label */
var elem = document.getElementById("card-face");
elem.innerHTML = rand.back;
/* Grab another random card from the card list */
function randomCard() {
var rand = cards[Math.floor(Math.random() * cards.length)];
console.log(rand)
if (typeof front !== 'undefined') {
alert("Undefined");
}
else{
var front = rand.front;
var back = rand.back;
console.log("Should now be updated?")
};
var elem = document.getElementById("card-face");
elem.innerHTML = rand.back;
}
/* Flip the card front to back */
function flipper() {
var elem = document.getElementById("card-face");
if (elem.innerHTML== rand.front) elem.innerHTML = rand.back;
else elem.innerHTML = rand.front;
console.log(elem)
}
</script>
结果使用卡front
和back
rand.back',但是当我翻转卡'rand.front'时,rand.back
返回会话开始时我设置的初始值。我如何具体更新这些值?
你再在'randomCard'函数中声明前后两个局部范围。不要使用'var front =',只是使用'front ='等等(你在本地范围内的声明隐藏全局范围内的声明) – Tibrogargan
分享你的json文件或内容来测试代码 –