我正在尝试在 javascript 中创建一个全局数组以用于多个函数。尝试回调时数组不显示。
var iListCount = 0;
var arrListItems = new Array;
function addItem(){
var list = document.getElementById('spanUser');
var sText = document.getElementById('item-text').value;
if (isNaN(iListCount)){
iListCount = 0;
}
if (sText != "") {
iListCount++;
arrListItems[iListCount] = sText;
list.innerHTML = list.innerHTML+"<li class='list-group-item' id='lis"+iListCount+"'>"+sText+"</li>";
document.getElementById("item-text").value = "";
} else {
document.getElementById("item-text").focus();
alert(arrListItems[1]);
}
}
编辑:HTML
<div class="form-group" style="margin-bottom:65px" id="header-div">
<label class="txt-sub pull-left">_items</label>
</div>
<div style="margin-left:40px">
<div class="form-group">
<input type="text" class="form-control pull-left" id="item-text" style="margin-bottom:10px; width:200px;margin-right:10px" onKeyUp="if (event.keyCode == 13) document.getElementById('btnAddItem').click()">
<button class="btn btn-default " onClick="addItem()" id="btnAddItem">add</button>
<button class="btn btn-default pull-right" onClick="removeItem()">remove last item</button>
<ul class="list-group" id="user-item" style="margin-top:10px">
<span id="spanUser">
</span>
</ul>
</div>
</div>
<!--End Items-->
最佳答案
从窗口对象定义一个全局变量:
window.iListCount = 0;
window.arrListItems = [];
你是否只使用 iListCount
作为 arrListItems
的索引,如果是这样替换:
iListCount++;
arrListItems[iListCount] = sText;
用这个:
arrListItems.push(sText);
并将 iListCount
引用替换为 arrListItems.length
。
我在以下 fiddle 中使用了上述建议以及其他一些良好实践措施:
关于javascript - 在 JS 中声明和引用全局数组时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20668191/