这个问题涉及下面的代码。我有一个变量数组,我推送名为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>
答案 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;
});
}