使用.push()增加数组长度

时间:2013-11-08 16:06:14

标签: javascript jquery html web

这个问题涉及下面的代码。我有一个变量数组,我推送名为person_list的元素。我的期望是,当我将元素推送到person_list时(通过按下添加按钮),数组的大小应该增加。然而,这种情况并非如此。每当我按下添加按钮时,输入框中的当前值将覆盖数组的第一个元素,并且数组大小不会递增。我做错了什么?

$(function() {
  window.person_list = [];
  btns_event_listener();
});

function btns_event_listener() {
  $("#add_btn").click(function() {
    person_list.push($("#_IWID_Persons_field").val());
    alert(person_list.length);
  }); 
}

以下是相关的HTML:

<tr id="_IWID_Persons_Config">
    <td width="20%" class="lotusFormLabel lotusFormFieldRow lotusNowrap"><label for="name"> Include Persons: </label></td>
    <td class="lotusFormFieldRow">
        <input type="text" value="" class="lotusText" id="_IWID_Persons_field">
        <button id="add_btn">Add</button>
    </td>
    <td width="40%" class="lotusFormFieldRow"></td>
</tr>

2 个答案:

答案 0 :(得分:1)

我认为您希望将person_list存储为var并且在'btns_event_listener'函数的范围内。

示例

var person_list = []

我创建了一个JsFiddle并附带推荐。

答案 1 :(得分:0)

 Please check out this..

 $(function() {
        var person_list = [];
        btns_event_listener(person_list);
    });

    function btns_event_listener(person_list) {


        $("#add_btn").click(function() {
            person_list.push($("#_IWID_Persons_field").val());

            alert(person_list.length);
            return false;
        });
    }