在按钮触发的函数中声明数组会导致该函数失败,并且无法按预期运行。发生这种情况的原因是什么? “功能C”块出了问题。
我还注意到,“ export ...”的ES6语法也会引起整个问题,它只接受“ module.export”。
我是一个初学者,所以我不知道发生了什么。
这是我的代码:
<!-- Bootstrap CSS -->
<link href="resources/bootstrap.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="resources/custom2.css">
<link href="resources/TCJA's CSS.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
let TA = [0, 0, 0, 0]
function MF() {
TA = [0, document.getElementById("test1").value, document.getElementById("test2").value, document.getElementById("test3").value]
document.getElementById("shout1").innerHTML = TA[1]
document.getElementById("shout2").innerHTML = TA[2]
document.getElementById("shout3").innerHTML = document.getElementById("testCheck").checked
}
function C() {
var ACArray[0] = 2; //AttackerCard Array
var DCArray[0] = 1; //DefenderCard Array
var para = document.createElement("p");
var node = document.createTextNode("The attackers dealt " + document.getElementById("wand").value + " damage to the defenders.");
para.appendChild(node);
var element = document.getElementById("newElement");
element.appendChild(para);
}
</script>
</head>
<body>
<!-- Put code below -->
<br>
<label class="control-label">Tester Input</label>
<input class="form" id="test1">
<input class="form" id="test2">
<input class="form" id="test3">
<br>
<button id="doge" class="btn btn-primary" onclick="MF()"><h3>Result</h3></button>
<br>
<input id="testCheck" type="checkbox"> Check it?
<br>
<h2>Result:</h2>
<p id="shout1">Hello?</p>
<p id="shout2">Hello again?</p>
<p id="shout3">Hello a third time?</p>
<br>
<label class="control-label">Creator Input</label>
<input class="form" id="wand">
<button id="god" class="btn btn-success" onclick="C()"><h3>Create</h3></button>
<br>
<div id=newElement>
</div>
<button id="show">Show</button>
<!-- JQuery -->
<!-- End of body -->
</body>
</html>
答案 0 :(得分:2)
通过声明var ACArray[0]=2;
是什么意思?是的,好像声明第一个元素等于2
的新数组,但是您的数组声明在哪里?
正确的方法:var ACArray = [2]; var DCArray = [1];
,依此类推。
答案 1 :(得分:1)
声明数组在将值分配给数组之前。
var ACArray = [];
var DCArray = [];
function C(){
ACArray[0] = 2;
DCArray[0] = 1;
}
答案 2 :(得分:0)
以下语法不正确:
var ACArray[0]=2; //AttackerCard Array
var DCArray[0]=1; //DefenderCard Array
在JS中声明数组最方便的方法是这样的Array文字:
var array = ['item1', 'item2'];
我们现在要做的是将多个步骤合而为一。首先,我们使用var关键字和数组文字语法为数组创建了内存。
第1步:
var array = [];
然后我们初始化了数组,并将实际值放入数组中,如下所示:
第2步
array[0] = 'item1';
array[1] = 'item2';
重要的是,您现在可以通过以下方式引用所有这些元素:
console.log(array[0]); // logs item1
console.log(array[1]); // logs item2
还要注意,数组中元素的计数从0开始,而不是1。