javascript - 在 JS 中声明和引用全局数组时遇到问题

标签 javascript arrays

我正在尝试在 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 中使用了上述建议以及其他一些良好实践措施:

http://fiddle.jshell.net/2hEby/

关于javascript - 在 JS 中声明和引用全局数组时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20668191/

相关文章:

javascript - 在功能上创建一个位置数组(使用 Underscore/Lodash)

python - 如何删除包含重复第一个元素的二维列表中的那些一维列表?

javascript - 将 promise polyfill 添加到 ES6

PHP将DB的返回值放入输入框

javascript - JQuery 表单提交不存储值?

javascript - 如何比较mongodb更新查询中的对象

arrays - 根据下一个对象过滤数组

android - 如何解析和显示 json 数组中的 url 内容?

javascript - 警告所有在 ng-Repeat : AngularJS 中选中的复选框

javascript - 如何使我的 Firestore 搜索可重复?