搞不明白!

wtcsy 2008-10-14 04:35:10
<body>
<div id="all">
<div>内容1</div>
<div>内容2</div>
<div>内容3</div>
<div>内容4</div>
<div>内容5</div>
<div>内容6</div>
<div>内容7</div>
<div>内容8</div>
<div>内容9</div>
<div>内容10</div>
</div>
</body>
<script>
var a = document.getElementById("all").getElementsByTagName("div");
var zz =new Array(a.length)
for(var i=0;i<a.length;i++)
{
zz[i]=a[i].innerHTML
alert(zz[i])
document.getElementById("all").removeChild(a[i]) //把这个注释掉alert(zz[i])有10个,不注释掉只有5个alert(zz[i])
}
</script>
代码很简单 就是把div的内容给到数组 在删除所有的id=all下的 div
但是只能删除奇数的那些div
不知道为什么会这样
请大虾们指教下。。。。。。。。
...全文
77 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtcsy 2008-10-15
  • 打赏
  • 举报
回复
练练手!~~
<style type="text/css">
font-size: 12px;
a:link{color:#000000;text-decoration:none}
a:visited{color:#000000;text-decoration:none}
a:hover{color:#CC0000;text-decoration:none}
</style>
<body>
<div id="all">
<div>内容1 </div>
<div>内容2 </div>
<div>内容3 </div>
<div>内容4 </div>
<div>内容5 </div>
<div>内容6 </div>
<div>内容7 </div>
<div>内容8 </div>
<div>内容9 </div>
<div>内容10 </div>
</div>
<div>一共<span id="a1" style="color:#FF0000"></span>页 当前在<span id="a2" style="color:#FF0000"></span>页 <span id="a3"></span> <a href="#" onClick="change(--pageno)">上一页</a>  <a href="#" onClick="change(++pageno)">下一页</a></div>
</body>
<script>
var a = document.getElementById("all").getElementsByTagName("div");
var zz =new Array(a.length)
for(var i=0;i <a.length;i++)
{ zz[i]=a[i].innerHTML }
var pageno=1 //当前页
var pagesize=3 //每页多少条信息
if(zz.length%pagesize==0)
{var pageall =zz.length/pagesize }
else
{var pageall =parseInt(zz.length/pagesize)+1} //一共多少页

function change(e){
if(e<1)
{ e=1;pageno=1}
if(e>pageall)
{e=pageall;pageno=pageall}
document.getElementById("all").innerHTML=""
for(var i=0;i<pagesize;i++)
{
var div =document.createElement("div")
div.innerHTML=zz[(e-1)*pagesize+i]
document.getElementById("all").appendChild(div)
if(zz[(e-1)*pagesize+i+1]==null)
break }
var ye=""
for(var j=1;j<=pageall;j++)
{
if(e==j)
{ye=ye+"<span style='color:#FF0000'>[<a href='#' onClick='change("+j+")'>"+j+"</a>]</span>"}
else
{ye=ye+"<a href='#' onClick='change("+j+")'>[<a href='#' onClick='change("+j+")'>"+j+"</a>]"}
}
document.getElementById("a1").innerHTML=pageall
document.getElementById("a2").innerHTML=pageno
document.getElementById("a3").innerHTML=ye
}
change(1)
</script>
wtcsy 2008-10-14
  • 打赏
  • 举报
回复
....完了就直接结帖了
没看到后面还有那么多的人跟
spring_0534 2008-10-14
  • 打赏
  • 举报
回复
<body>
<div id="all">
<div>内容1 </div>
<div>内容2 </div>
<div>内容3 </div>
<div>内容4 </div>
<div>内容5 </div>
<div>内容6 </div>
<div>内容7 </div>
<div>内容8 </div>
<div>内容9 </div>
<div>内容10 </div>
</div>
</body>
<script>
var a = document.getElementById("all").getElementsByTagName("div");
var zz =new Array(a.length)
for(var i=a.length-1; i>=0; i--)
{
zz[i]=a[0].innerHTML
alert(zz[i])
document.getElementById("all").removeChild(a[0]) //把这个注释掉alert(zz[i])有10个,不注释掉只有5个alert(zz[i])
}
</script>
toury 2008-10-14
  • 打赏
  • 举报
回复

<script>
var a = document.getElementById("all").getElementsByTagName("div");
var zz=[]; var t=a.length
for(var i=0;i <t;i++)
{
zz[i]=a[i].innerHTML
alert(zz[i]) +'\\'+a.length

}

for (i=0;i<t;i++){
document.getElementById("all").removeChild(a[0])
}

</script>
llddy 2008-10-14
  • 打赏
  • 举报
回复

<body>
<div id="all">
<div>内容1 </div>
<div>内容2 </div>
<div>内容3 </div>
<div>内容4 </div>
<div>内容5 </div>
<div>内容6 </div>
<div>内容7 </div>
<div>内容8 </div>
<div>内容9 </div>
<div>内容10 </div>
</div>
</body>
<script>
//var a = document.getElementById("all").getElementsByTagName("div");
var a = document.getElementById("all");
for(var i=a.childNodes.length;i<a.childNodes.length;i--){
a.childNodes[i].removeNode(true);
}
document.getElementById("all").innerHTML="删除完毕";

</script>
llddy 2008-10-14
  • 打赏
  • 举报
回复

<body>
<div id="all">
<div>内容1 </div>
<div>内容2 </div>
<div>内容3 </div>
<div>内容4 </div>
<div>内容5 </div>
<div>内容6 </div>
<div>内容7 </div>
<div>内容8 </div>
<div>内容9 </div>
<div>内容10 </div>
</div>
</body>
<script>
var a = document.getElementById("all");
for(var i=0;i<a.childNodes.length;i++){
a.childNodes[i].style.display="none";
}
document.getElementById("all").innerHTML="删除完毕";

</script>

zhangw428 2008-10-14
  • 打赏
  • 举报
回复
document.getElementById("all").removeChild(a[i])
这句出现在循环中,会破坏掉all里面的结构,在循环中你删除了里面的一个div,导致a[i]取不到正确的值。
比如你执行第一次循环时,删除了<div>内容1 </div> 。导致到第二次循环时,zz[1]取到的是<div>内容3 </div> ,而不是你想象得<div>内容2 </div>
,因为dom结构已经被你改变了。变成9项了。
以此类推,就只能得到奇数项。
wtcsy 2008-10-14
  • 打赏
  • 举报
回复
原来如此!~
Go 旅城通票 2008-10-14
  • 打赏
  • 举报
回复
<div id="all">
<div>内容1 </div>
<div>内容2 </div>
<div>内容3 </div>
<div>内容4 </div>
<div>内容5 </div>
<div>内容6 </div>
<div>内容7 </div>
<div>内容8 </div>
<div>内容9 </div>
<div>内容10 </div>
</div>
</body>
<script>
var a = document.getElementById("all").getElementsByTagName("div");
var zz =new Array(a.length)
for(var i=0;i <a.length;i++) //不要删除,要不a.length会变化的,在最后再删除
{
zz[i]=a[i].innerHTML
alert(zz[i])
//document.getElementById("all").removeChild(a[i]) //把这个注释掉alert(zz[i])有10个,不注释掉只有5个alert(zz

[i])
}
document.getElementById("all").innerHTML=""//删除
</script>
btbtd 2008-10-14
  • 打赏
  • 举报
回复
得用倒序..
如果你用正序的话, 比如删了 索引 0 的 DIV, 则原来索引 1 的DIV 即时变为索引0
btbtd 2008-10-14
  • 打赏
  • 举报
回复

<div id="all">
<div>内容1 </div>
<div>内容2 </div>
<div>内容3 </div>
<div>内容4 </div>
<div>内容5 </div>
<div>内容6 </div>
<div>内容7 </div>
<div>内容8 </div>
<div>内容9 </div>
<div>内容10 </div>
</div>
</body>
<script>
var a = document.getElementById("all").getElementsByTagName("div");
var zz =new Array(a.length)
for(var i=a.length-1; i>=0; i--)
{
zz[i]=a[i].innerHTML
alert(zz[i])
document.getElementById("all").removeChild(a[i]) //把这个注释掉alert(zz[i])有10个,不注释掉只有5个alert(zz[i])
}
</script>

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧