我试图在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-->
答案 0 :(得分:0)
只需初始化数组:
var arrListItems = [];
答案 1 :(得分:0)
如果要在语句
处检查数组结果 alert(arrListItems[1]);
然后确保数组至少有两个元素。
可以使用索引0
读取数组的第一个元素,使用1
读取第二个元素,依此类推。
如果您尝试阅读第一个元素,请使用
alert(arrListItems[0]);
还有陈述
iListCount++;
arrListItems[iListCount] = sText;
应该合并为一个这样的语句
arrListItems[iListCount++] = sText;
这样你就可以从它的第一个位置开始向数组中添加元素。
您也可以尝试
arrListItems[arrListItems.length] = sText;
arrListItems[iListCount++] = sText;
答案 2 :(得分:0)
从窗口对象定义全局变量:
window.iListCount = 0;
window.arrListItems = [];
您是否仅使用iListCount
作为arrListItems
的索引,如果是,请替换:
iListCount++;
arrListItems[iListCount] = sText;
用这个:
arrListItems.push(sText);
将iListCount
引用替换为arrListItems.length
。
我在以下小提琴中使用了上述建议以及其他一些良好实践措施: