我有以下脚本:
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检查了数组长度,每次函数执行他的工作时,都会添加新的数组元素而不是替换旧的数组元素。我需要将新元素推入数组,以替换旧的。
答案 0 :(得分:1)
每次单击时都必须清除阵列。重新启动数组,以便它可以正常工作
答案 1 :(得分:1)
你只需要在循环之前清除数组。你可以使用:
arr_p.length=0;
或
arr_p=[];