.push函数无法更新数组

时间:2014-07-14 13:01:07

标签: javascript jquery push

我似乎无法在数组中推送新数据,然后使用新数据更新输出字段。可能是一个明显的问题,但不是我的新手技能。

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<script src="jquery-2.1.1.min.js"></script>
<title>VB</title>
</head>
<body>

<output id="crumMenuOutput"></output>
<br /><br />
<button type="button" id="test">Ny takst</button>

    <script>

        $(document).ready(function(){

            var menuArray = new Array;

            menuArray.push("test1"); // add test data to array

            $("button").click(function() {

                menuArray.push("test2"); // fail to add data on button click
                alert($(this).attr('id')); // just at test to see function working

            });

这应该用更多条目更新OUTPUT字段

            if(menuArray.lenght !== 0){
                $.each(menuArray, function(i, val) {
                    if(i == menuArray.length - 1) var spacer = ""; else var spacer = " > ";
                    $('#crumMenuOutput').append(val + spacer); 
                });
            }


        });

    </script>

</body>

</html>

1 个答案:

答案 0 :(得分:0)

您只需在更新后显示新内容。它目前在点击之外,因此只会被调用一次:

JSFiddle:http://jsfiddle.net/r7jck/

 $(document).ready(function () {

     var menuArray = new Array;

     menuArray.push("test1"); // add test data to array

     $("button").click(function () {

         menuArray.push("test2"); // fail to add data on button click
         alert($(this).attr('id')); // just at test to see function working
         if (menuArray.lenght !== 0) {
             $.each(menuArray, function (i, val) {
                 if (i == menuArray.length - 1) var spacer = "";
                 else var spacer = " > ";
                 $('#crumMenuOutput').append(val + spacer);
             });
         }


     });

 });

实际上看起来你的代码部分缺失了(在中间)?您可能希望澄清此代码的预期目标。