繁体   English   中英

不显示数组元素

[英]Don't show array elements

我有一个要在模式中显示的数组。

数组确实具有我测试过的元素,但未出现在模式中。

这是代码:

    <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>

PS:如果我放:

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

它显示了“ 01234”,但是当我放置数组时,它什么也没有显示。

 <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

此外,您的数组是空的,请把你的东西数组中

var items_selected = [1,2,3,4,5];

您当前的代码遍历数组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变量。

您最初将循环退出条件i设置为0。结果,循环将永远不会运行。 也就是说,您实质上是在说:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM