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

「btns_event_listener」関数のスコープ内に保存person_listしたいと思います。var

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 に答える