【发布时间】:2018-11-03 18:48:30
【问题描述】:
以下 JavaScript 列表应用程序允许用户通过 JS 推送方法在单击按钮时将项目输入到数组中。然后使用 DOM 方法将项目附加到无序列表中。示例 #1 在函数中包含数组变量,并将单个项目正确附加到单个列表元素。但是,当在示例 #2 中的函数之前放置数组变量时,会出现第一项正确附加的情况,但再次单击以添加第二项会导致新项和前一项(重复)都附加到一个新的列表元素。为什么在函数之前包含数组变量时,前一项会重新附加到新的列表元素中?请参阅下面的示例。非常感谢您的反馈!
示例 #1 JS:
<script>
function add(){
var array = [];
var task = document.getElementById("task").value;
array.push(task);
var text = document.createTextNode(array);
var elem = document.createElement("li");
elem.appendChild(text);
document.getElementById("myUl").appendChild(elem);
};
</script>
示例 #1 HTML:
<input id="task">
<button onclick="add()">add</button>
<ul id="myUl"></ul>
示例 #2 JS:
<script>
var array = [];
function add(){
var array = [];
var task = document.getElementById("task").value;
array.push(task);
var text = document.createTextNode(array);
var elem = document.createElement("li");
elem.appendChild(text);
document.getElementById("myUl").appendChild(elem);
};
</script>
示例 #2 HTML:
<input id="task">
<button onclick="add()">add</button>
<ul id="myUl"></ul>
【问题讨论】:
标签: javascript arrays list push