1

这个问题参考下面的代码。我有一个变量数组,我将名为 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>
4

2 回答 2

1

我认为您希望将其存储person_listvar“btns_event_listener”函数的范围内。

例子

var person_list = []

我创建了一个带有推荐的JsFiddle 。

于 2013-11-08T16:08:36.493 回答
0

请查看此代码。

 $(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;
        });
    }
于 2013-11-11T12:10:14.287 回答