【发布时间】:2017-07-10 04:12:12
【问题描述】:
我想展示三张用 HTML 和 CSS 随机创建和设置样式的扑克牌,不重复。基本上我希望卡片由 id 随机选择并显示。我知道还有其他方法可以做到这一点(即在 Javascript 中创建卡片组本身),但我更愿意找到一种方法来使用 Javascript 通过 id 显示 HTML 的元素,因为它可以重新用于显示其他样式的 html 元素css,例如图像、文本或任何具有 ID 的内容,一次三个,甚至更多。我也希望这是一个 onclick 事件。
使用下面的代码,我尝试将 id 放在一个数组中,但是当我运行代码时,括号内的文本显示在页面上,而不是 id 元素本身。这也发生在加载而不是点击时。请注意,代码中的省略号不在代码中,它们只是用来表示其余元素。我已经做了一些彻底的研究,试图找到一种方法来做到这一点,尝试了很多方法,但还没有找到一种方法来一次显示多个元素(大多数看到的例子使用 getElementById 方法,它只适用于一个)。我见过的用于多个显示数组中的文本元素的方法。有没有人知道如何使代码按照我指定的方式工作,或者另一种想法?
HTML:
<html>
<head>
<meta charset="UTF-8">
<title>title</title>
<link rel="stylesheet" type="text/css" href=style.css>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type"text/javascript" src="js/main.js"></script>
</head>
<div class="card">
<div style="font-size: 24px" style="display; inline-block">
<div class="cards" id="card1"><span style="color: #C23B22">2♦</span></div>
<div class="cards" id="card2"><span style="color: #C23B22">2♥</span></div>
<div class="cards"id="card3">2♣</div>
<div class="cards" id="car4">2♠</div>
<div class="cards" id="card5"><span style="color: #C23B22">3♦</span></div>
<div class="cards" id="card6"><span style="color: #C23B22">3♥</span></div>
<div class="cards" id="card7">3♠</div>
<div class="cards" id="card8">3♣</div>
<div class="cards" id="card9"><span style="color: #C23B22">4♦</span></div>
<div class="cards" id="card10"><span style="color:#C23B22">4♥</span></div>
<div class="cards" id="card11">4♣</div>
<div class="cards" id="card12">4♠</div>
<div class="cards" id="card13"><span style="color:#C23B22">5♦</span></div>
<div class="cards" id="card14"><span style="color:#C23B22">5♥</span></div>
<div class="cards" id="card15">5♣</div>
...
</div>
</div>
<input type="button" id="Button" value="Random" onclick="RandomDiv();" />
</body>
</html>
Javascript/Jquery:
var myarray = ["card1","card2","card3","card4","card5","card6","card7","card8","card9","card10","card11","card12","card13","card14","card15"...];
var numberOfTestimonials = 3;
for (var i=1; i<=numberOfTestimonials; i++) {
var randomIndex = RandomDiv(myarray);
$('.card').append(myarray[randomIndex]);
myarray.splice(randomIndex, 1);
}
function RandomDiv(myarray) {
return Math.floor(Math.random() * myarray.length);
};
【问题讨论】:
-
首先您的 span 元素没有正确关闭,因为它们没有右括号“>”。其次,您使用的 append 方法不用于插入文本。您应该首先使用 $(selector) 选择具有指定 id 的项目。然后附加它。
标签: javascript jquery html arrays random