Javascript 如何删除图像并重新使用它
我正在尝试用javascript创建一个21点游戏,所有东西都可以很好地绘制卡片,并在达到21点后停止。 我在开始新游戏时遇到问题,我需要删除现有的卡并显示新卡 我试图将显示更改为隐藏,但当我再次将显示更改为可见时,所有旧卡也会弹出。我尝试使用.parentNode.removeChild,但出现了一个问题,即参数为NULL,无法再次使用。。如何删除已存在的参数并使用相同的参数重新开始 它还没有完成,现在是草稿** JavaScript代码:Javascript 如何删除图像并重新使用它,javascript,Javascript,我正在尝试用javascript创建一个21点游戏,所有东西都可以很好地绘制卡片,并在达到21点后停止。 我在开始新游戏时遇到问题,我需要删除现有的卡并显示新卡 我试图将显示更改为隐藏,但当我再次将显示更改为可见时,所有旧卡也会弹出。我尝试使用.parentNode.removeChild,但出现了一个问题,即参数为NULL,无法再次使用。。如何删除已存在的参数并使用相同的参数重新开始 它还没有完成,现在是草稿** JavaScript代码: var cards = [1, 2, 3, 4, 5
var cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
var images =
["media/cards/AC.jpg", "media/cards/2.jpg", "media/cards/3C.jpg", "media/cards/4C.jpg",
"media/cards/5C.jpg", "media/cards/6C.jpg", "media/cards/7C.jpg", "media/cards/8C.jpg",
"media/cards/9C.jpg", "media/cards/10C.jpg", "media/cards/JC.jpg", "media/cards/QC.jpg",
"media/cards/KC.jpg"
];
var upside = "media/cards/UpsideDown.jpg";
var Check2Cards = 0;
var Check2Cards2 = true;
var checkUserScore = 0;
var newgame;
function deal()
{
if (Check2Cards2) {
var random = Math.floor((Math.random() * 13));
var UserCards = document.getElementById('user');
var card = document.createElement('img');
card.setAttribute("width", 250);
card.setAttribute("src", images[random]);
UserCards.appendChild(card);
checkUserScore += cards[random];
if (checkUserScore > 21) {
Check2Cards2 = false;
checkUserScore = 0;
newgame = true;
}
}
if (newgame == true) {
UserCards.parentNode.removeChild(UserCards);
UserCards.parentNode.appendChild(UserCards);
}
Check2Cards2 = true;
newgame = false;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="game.js"></script>
<!--<link href="StyleSheet1.css" rel="stylesheet" />-->
<style>
.hidden {
display: none;
}
.show {
display: inline-block;
}
</style>
</head>
<body style="background-image:url(media/background5.jpg);background-size:100%;text-align:center">
<center>
<table border="1" width="100%" height="100%" style="text-align: center">
<tr><td style="height:300pt;width:100%;font-size:100pt;color:white"><p id="dealer">TOP</p></td></tr>
<tr><td style="height:400pt;width:50%;font-size:100pt;color:white;float:left">left</td><td style="height:400pt;width:49%;font-size:100pt;color:white;float:right"><button style="font-size:100pt" id="deal" onclick="deal()">deal</button></td></tr>
<tr><td style="height:350pt;width:100%;font-size:100pt;color:white"><div id="user" ></div></td></tr>
</table>
<!--<img id="img2" src="media/cards/2.jpg"onclick="document.getElementById('img2').className='hidden'"/>-->
</center>
</body>
</html>
html代码:
var cards = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
var images =
["media/cards/AC.jpg", "media/cards/2.jpg", "media/cards/3C.jpg", "media/cards/4C.jpg",
"media/cards/5C.jpg", "media/cards/6C.jpg", "media/cards/7C.jpg", "media/cards/8C.jpg",
"media/cards/9C.jpg", "media/cards/10C.jpg", "media/cards/JC.jpg", "media/cards/QC.jpg",
"media/cards/KC.jpg"
];
var upside = "media/cards/UpsideDown.jpg";
var Check2Cards = 0;
var Check2Cards2 = true;
var checkUserScore = 0;
var newgame;
function deal()
{
if (Check2Cards2) {
var random = Math.floor((Math.random() * 13));
var UserCards = document.getElementById('user');
var card = document.createElement('img');
card.setAttribute("width", 250);
card.setAttribute("src", images[random]);
UserCards.appendChild(card);
checkUserScore += cards[random];
if (checkUserScore > 21) {
Check2Cards2 = false;
checkUserScore = 0;
newgame = true;
}
}
if (newgame == true) {
UserCards.parentNode.removeChild(UserCards);
UserCards.parentNode.appendChild(UserCards);
}
Check2Cards2 = true;
newgame = false;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="game.js"></script>
<!--<link href="StyleSheet1.css" rel="stylesheet" />-->
<style>
.hidden {
display: none;
}
.show {
display: inline-block;
}
</style>
</head>
<body style="background-image:url(media/background5.jpg);background-size:100%;text-align:center">
<center>
<table border="1" width="100%" height="100%" style="text-align: center">
<tr><td style="height:300pt;width:100%;font-size:100pt;color:white"><p id="dealer">TOP</p></td></tr>
<tr><td style="height:400pt;width:50%;font-size:100pt;color:white;float:left">left</td><td style="height:400pt;width:49%;font-size:100pt;color:white;float:right"><button style="font-size:100pt" id="deal" onclick="deal()">deal</button></td></tr>
<tr><td style="height:350pt;width:100%;font-size:100pt;color:white"><div id="user" ></div></td></tr>
</table>
<!--<img id="img2" src="media/cards/2.jpg"onclick="document.getElementById('img2').className='hidden'"/>-->
</center>
</body>
</html>
.隐藏{
显示:无;
}
.表演{
显示:内联块;
}
顶部
左撇子
按照@Kinglish的建议去做
if (newgame == true) {
UserCards.innerHtml = "";
}
或者一张接一张地取出卡片
if (newgame == true) {
while(UserCards.firstChild){
UserCards.removeChild(UserCards.firstChild);
}
}
只需清除innerHTML:
if(newgame==true)UserCards.innerHTML=“”代码>它可以工作,但是隐藏的图像会占用空间吗?它会在某个时候减慢比赛速度吗?感谢alotIt删除用户卡的内容。您在任何地方都找不到它们,如果要存储它们,应该使用其他方法。但是,将游戏历史记录存储在前端不是最好的做法抱歉,我不知道什么是前端我对javascript不熟悉。这是我第一次构建一个游戏,请给我一些提示如何改进我的代码。你将一步一步地学习,从使用let和const开始,而不是var