不要显示数组元素

时间:2016-06-27 15:17:02

标签: javascript html

我想在一个模态中显示一个数组。

阵列确实有我测试过的元素,但它并没有出现在模态中。

这是代码:

    <script>
        var selected_items = [];
        var i = 0;

        function LoadItems() {
            for(var j = 0; j < i; j++) {
                document.write('<li>' + skins_selected[j] + '</li>');
            }
        }

function UpdateArray(name) 
{   
        selected_items[i] = name;
        i++;
}
    </script>

    <div class="modal fade" id="modalItems" tabindex="-1" role="dialog" aria-labelledby="labelItems">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" id="labelItems">¿Confirma que desea depositar los siguientes items?</h4>
                </div>

                <form class="form-inline" role="form">
                <div class="modal-body">
                    <div class="form-group">
                        <ul>
                            <script>
                                LoadItems();
                            </script>
                        </ul>
                    </div>
                </div>

                <div class="modal-footer">
                    <button onclick="mostrar()" class="btn btn-info">Depositar</button>
                    <button type="button" class="btn btn-danger" data-dismiss="modal">Cerrar</button>
                </div>

                </form>

            </div>
        </div>
    </div>
P.S:如果我说:

<script>
    function LoadItems() {
        (var j = 0; j < 5; j++) {
            document.write(j);
        }
    }
</script>

它显示了我&#34; 01234&#34;,但是当我放置数组时它并没有向我显示任何内容。

3 个答案:

答案 0 :(得分:0)

&#13;
&#13;
@javascript
&#13;
&#13;
&#13;

您的循环未执行,因为<ul> <script> var selected_items=[1,2,3,4,5]; var i = 5; function LoadItems() { for(var j = 0; j < selected_items.length; j++) { document.write('<li>' + selected_items[j] + '</li>'); } } LoadItems(); </script> </ul>位于for(var j = 0; j < i; j++),因此j=0 and i=0可能就是这样。

您应该声明j < i而不是i = 5;

此外,您的阵列是空的,请在您的阵列中添加一些内容,如

i = 0

答案 1 :(得分:0)

您当前的代码循环遍历数组i次。但是,在上一行i设置为0.所以它循环0次,这就是为什么你什么都没有显示。

我假设您希望它循环遍历数组中的所有项目,无论如何 有许多元素。在这种情况下,您应该使用skins_selected数组的.length属性:

function LoadItems() {
    for(var j = 0; j < skins_selected.length; j++) {
        document.write('<li>' + skins_selected[j] + '</li>');
    }
}

您可以完全取消i变量。

答案 2 :(得分:0)

您最初将循环退出条件i设置为0.因此,您的循环将永远不会运行。即你基本上是在说:

for(var j=0; j < 0; j++){
    //j is never < 0 so this code never runs
}

您的第二个示例将其删除并将循环退出条件硬编码为预期值。