/ *问题1:看来我在范围方面遇到了问题。我的目标是将提示响应推送到数组中,而不保留变量在函数内,范围阻止变量进行通信(或至少看起来如此。)这也会阻止getElementById显示为常量而不被调用功能
问题2:当变量全部放在本地时,提示会替换它在数组中的前一项,使其只能添加一个项目,想知道是否有人有关于如何添加越来越多的建议。
HTML:
<p id = "coding"></p>
<button onclick="addTo()">Add</button>
New Quality
<br><br>
<button onclick="noMas()">Delete</button>
Remove Quality
JS:
function addTo(){
var progQual = ["Creative"," "+"Original"+" "+"Innovative", ];
addQuality = prompt("Add Another Quality");
addQuality = progQual.push(" "+addQuality);
document.getElementById("coding").innerHTML = progQual;
function noMas(){progQual.shift(progQual);}
};
有点难过:(
答案 0 :(得分:0)
首先为您的按钮指定ID并删除onclick属性:
<p id = "coding"></p>
<button id="btn-add">Add</button>
New Quality
<br><br>
<button id="btn-delete">Delete</button>
Remove Quality
在你的JS中,在一个自我调用的匿名函数中隔离你的代码,并在回调的父作用域中定义progEqual。使用addEventListener添加listeneres。:
(function() { //Isolate scope
/*
* Define array in parent scope of callbacks to gain access to
* same referemce in both callbacks
*/
var progQual = ["Creative"," "+"Original"+" "+"Innovative"];
document.getElementById("btn-add").addEventListener("click", function() {
// Add logic
});
document.getElementById("btn-delete").addEventListener("click", function() {
//Delete logic
});
}());
有关详细信息,请从Scotch.io - Understanding Javascript Scope搜索Javascript范围,例如本教程。