javascript数组-在eventlistener上进行拼接和推送
我正在努力做一些JavaScript作业。当页面加载时,我们必须给卡片分配一个随机数。当你点击一张卡片时,它会把它推到阵列的末端。我的主要问题是创建一个临时变量并存储单击的元素 HTML:javascript数组-在eventlistener上进行拼接和推送,javascript,arrays,Javascript,Arrays,我正在努力做一些JavaScript作业。当页面加载时,我们必须给卡片分配一个随机数。当你点击一张卡片时,它会把它推到阵列的末端。我的主要问题是创建一个临时变量并存储单击的元素 HTML: <fieldset id="cards-area"> <legend>Hand of cards</legend> <div class="hand-of-cards" id="cards"> <div></div>
<fieldset id="cards-area">
<legend>Hand of cards</legend>
<div class="hand-of-cards" id="cards">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<button id="sort-cards" type="button">Sort</button>
<button id="reverse-cards" type="button">Reverse</button>
</fieldset>
(function () {
var cardElements, cardValues;
// WRITE CODE HERE TO MAKE THE #cards ELEMENT WORK
//This makes all the div elements an element
cardElements = Array.prototype.slice.call(document.querySelectorAll('#cards div'));
//This creates an empty array to store elements into
cardValues = [];
cardElements.forEach(function (cardElement) {
// Gives the card elements a random number when the page loads
cardElement.textContent = Math.floor(Math.random() * 99) + 1;
//This pushes the card elements into the array
cardValues.push(cardElement);
//Event listener when the card element is clicked it
//stores that card element into a variable
//splices that cardElement
//and pushes that cardElement to the end which was stored into a variable
cardElement.addEventListener('click', function () {
var whichCard = cardValues.indexof(cardElement);
cardValues.splice(whichCard, 1);
cardValues.push(whichCard);
}, false);
});
}());
看看吧。如果您尝试单击任何数字,它将把它推到数组的末尾
(函数(){
var cardElements,cardValues;
//在此处编写代码以使#cards元素工作
//这使所有div元素都成为一个元素
cardElements=Array.prototype.slice.call(document.querySelectorAll(“#cards div”);
//这将创建一个空数组来存储元素
var cardValues=[];
forEach(函数(cardElement){
//当页面加载时,为卡片元素提供一个随机数
cardElement.textContent=Math.floor(Math.random()*99)+1;
//这会将卡元素推入阵列
cardValues.push(cardElement);
//单击卡片元素时的事件侦听器
//将该卡元素存储到变量中
//拼接该元件
//并将cardElement推到存储在变量中的末尾
cardElement.addEventListener('click',函数(){
var变量数;
//var whichCard=cardValues.indexof(cardElement);
对于(i=0;我能请您更具体地解释一下问题是什么吗?我希望能够单击其中一个卡元素,并且该卡元素将移动到数组的末尾。单击时,什么都不会发生。我需要做的是,单击一个卡元素时,它将其存储为临时变量,拼接单击的元素,然后按t键。)临时变量。我想您可能打算使用cardValues.push(cardElement);
而不是cardValues.push(whichCard);
此外,您没有在任何地方更新DOM,您只是在更新数组。我有文档。addEventListener('DOMContentLoaded',function(){在我整个代码的开头,我需要再次更新它吗?只会触发一次。使用它的原因是确保元素在JS中查询之前呈现在页面上。如果您在关闭
标记之前粘贴JS的
元素,您根本不需要它(这样它只在所有前面的html呈现之后加载)。