<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function test(){
var ul = document.createElement('ul');
var li = document.getElementsByTagName('li');
for(var i=0; i< li.length; i++){
alert(li.length);
ul.appendChild(li[i]);
}
document.body.appendChild(ul);}
</script>
</head><body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<input type="button" onclick="test()" />
</body>
</html>
请问 这种 方式页面只能获得1和3 2却消失了
解决方案 »
- js能做这种效果吗?
- js时间延迟问题
- 关于document.write的简单问题???????
- 新人初到宝地~~~散分了
- frame中怎样写控制myform提交的javascript代码???
- 如何用JAVASCRIPT判断文件是否存在???
- ★关于POP窗口与其opener之间的参数传递 [小问题,在线,结贴]
- 如何判断一个文件是否存在?
- css的alpha的startx=10,starty=10,finishx=20,finishy=20的这几个参数是不是在IE5里不好用?
- 这个叫我怎么办好呀!!!!!!!!!!!!!!!!!!!!!!!!!!!60分
- ext3.2中的confirm和RowEdit的事件点击confirm的事件怎么都执行了
- 为什么要encodeURI(url)两次才不会出现乱码?
答:LZ注意这段代码运行时的两个提示框,第一次是3,第二次是2,这个提示的是li.length。
那么想想看,这个数字变化的原因?
其实是因为1这个li被移到你新建的ul中,所以长度少1。
解决了这个疑问,我们来看i的变化?
当i=0时,将内容为1的li移到ul中,
当i=1时,注意因为此时的长度变为2了,
看看li[i]的情况:li[0]=2,li[1]=3.
所以将内容为3的li移到ul中。
function test(){
var ul = document.createElement('ul');var li = document.getElementsByTagName('li');
for(var i=li.length - 1; i>=0 ; i--){
ul.appendChild(li[i]);
}
document.body.appendChild(ul);}把循环顺序倒过来写就可以了这是因为你每次ul.appendChild(li[i]);的时候,li的长度就减掉1了
function test(){
var ul = document.createElement('ul');
var li = document.getElementsByTagName('li');
var l = li.length;
for(var i=0; i<l; i++){
// alert(li.length);
ul.appendChild(li[0]);
}
document.body.appendChild(ul);}