更改数组的元素

时间:2015-02-11 08:03:38

标签: javascript php arrays

我有以下脚本:

PHP:

for($i=1; $i<=100; $i++){
    echo '<li id="p'.$i.'" style="display: none;" onclick="click('.$i.')">'.$i.'</li>';
}

使用Javascript:

var arr_p=[];

function click(x){
    for(i=1; i<=10; i++){
        a = document.getElementById('p'+i);
        if(a.style.display=='inline'){
            arr_p.push(i);
        }
    }   

    if(x==arr_p.length){
        document.getElementById('p'+1).style.display='none';
    }   
}

正如你所看到的,我在函数之外声明了一个数组,所以我可以更改里面的元素(至少为变量字符串工作)。然后我捕获每个显示内联从1到10的html元素并将它们插入arr_p

当用户点击最后一个元素(即10)时,如果它与数组长度(即10)相等,则第一个html元素将显示无,所以当函数再次出现时,它应检查显示内联的前10个值,并将它们插入arr_p。

我使用console.log检查了数组长度,每次函数执行他的工作时,都会添加新的数组元素而不是替换旧的数组元素。我需要将新元素推入数组,以替换旧的。

2 个答案:

答案 0 :(得分:1)

每次单击时都必须清除阵列。重新启动数组,以便它可以正常工作

答案 1 :(得分:1)

你只需要在循环之前清除数组。你可以使用:

arr_p.length=0;

arr_p=[];