更改数组的元素


Changing the elements of an array

我有以下脚本:

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元素将不显示任何值,因此当函数再次运行时,它应该使用display inline检查前10个值,并将它们插入arr_p中。

我用console.log检查了数组长度,每次函数完成任务时,都会添加新的数组元素,而不是替换旧的数组元素。我需要被推入数组的新元素来替换旧的元素。

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

arr_p.length=0;

arr_p=[];

每次单击都必须清除数组。重新初始化数组,使其可以正常工作。