把问题描述清楚。alert( "childNode:" + o.childNodes[ 0 ].outerHTML );
^
你的目的是循环childNodes还是一直打印childNodes[0]
^
你的目的是循环childNodes还是一直打印childNodes[0]
解决方案 »
- DD_belatedPNG问题
- Jquery实现一个动态加载,该如何实现?
- js初学者,诚心寻找有缘的师傅...
- js中模拟keyboard输入在chrome和safari上无效,求达人指点
- js如何实现导出pdf
- 求javascript中得到當年年份的函數
- 请问javascript和php或者asp等服务器端脚本能互通数据吗?
- 请教javascript当中当中如何根据用户的分辨率调整页面大小
- 新手请教“windows.open('link','name','这里都有什麽属性,并具体说明')”,谢谢!
- 大家帮我看下这段代码的$.ajax()方法问题出在哪
- 关于获取同名checkbox的值的传递?
- 紧急的问题!谢谢大家.
for( var i = 0; i < o.childNodes.length; i ++ ){
// 按常规思考,这样就循环把o的子节点添加到n
// 但这个方法是错误的
n.appendChild( o.childNodes[ i ] );
}下面这样是可以的:
for( var i = o.childNodes.length; i > 0; i -- ){
n.appendChild( o.childNodes[ 0 ] );
}
但,这个我不解:
o.childNodes会自动删除吗?
1、每o.childNodes[ 0 ] 一次就删除自身吗?
2、还是被appendChild,就会删除自身?
3、alert( o.childNodes[ 0 ].outerHTML ),是undefined,那么它是什么,为什么会有这个数组?
// 按常规思考,这样就循环把o的子节点添加到n
// 但这个方法是错误的
n.appendChild( o.childNodes[ i ] );
}这种方法是错误的,
并且o下面的子节点会自动消失。
1、每o.childNodes[ 0 ] 一次就删除自身吗?
a:你没删除,一般情况下,不会被收集回去的。2、还是被appendChild,就会删除自身?
a:也不会3、alert( o.childNodes[ 0 ].outerHTML ),是undefined,那么它是什么,为什么会有这个数组?
a:1.有可能这个节点是空节点,即空白节点,
为什么会有这个数组?
------------------
指o.childNodes[ 0 ].outerHTML这个?这个是集合,为子节点集合中的第一个孩子。
n.appendChild( o.childNodes[ 0 ] );
}
奇怪的是这个,o.childNodes[ 0 ] 为什么每循环一次就不一样?会自动移动类似的“指针”玩意吗?
3、alert( o.childNodes[ 0 ].outerHTML ),是undefined,那么它是什么,为什么会有这个数组?这个明白了。可能空节点的原因。
n.appendChild( o.childNodes[ 0 ] );
}
奇怪的是这个,o.childNodes[ 0 ] 为什么每循环一次就不一样?会自动移动类似的“指针”玩意吗?o.childNodes[ 0 ] 为什么每循环一次就不一样?你怎么知道不一样?
for( var i = o.childNodes.length; i > 0; i -- ){
alert(o.childNodes[0].innerHTML) //你看看他变了没有,你要调试呀n.appendChild( o.childNodes[ 0 ] );
}
<div id="t1">11111111111111
<div id="t2">2222222222</div>
</div>
<script language="javascript">
var o = document.getElementById( 't1' );
var t = document.createElement( 'DIV' );
for( var i = o.childNodes.length; i > 0; i -- ){
t.appendChild( o.childNodes[ 0 ] );
}
alert( "t:" + t.outerHTML );
alert( "t1:" + t1.innerHTML ); //这就变空了????
</script>
但这就是我的调试:
n.appendChild( o.childNodes[ 0 ] );每次appenChild 都能添加不同的元素,o.childNodes[ 0 ]当然是不同的了。
o.childNodes[ 0 ].outerHTML,我也试过了。
alert( "t1:" + document.getElementById( 't1' ).innerHTML ); //看看这个
//你先把基本的逻辑搞清楚
//var t = document.createElement( 'DIV' );只是创建,你没给他放到heml里面去
非常感谢你的指点,但你的回答和我题目的本义基本不同。<div id="t1">11111111111111
<div id="t2">2222222222</div>
</div>
alert( "t1:" + t1.innerHTML );
这个就是t1,正确的写当然是:document.getElementById( 't1' ).innerHTML
但结果是是一样的。>>
//你先把基本的逻辑搞清楚
//var t = document.createElement( 'DIV' );只是创建,你没给他放到heml里面去和这个是无关的。我要解决的是:
t.appendChild( o.childNodes[ 0 ] );
为什么会使:
<div id="t1">11111111111111
<div id="t2">2222222222</div>
</div>
里的:
11111111111111
<div id="t2">2222222222</div>
变没了?我要了解和探讨的是这个为什么?不是学习语法。
o.childNodes[0]在o子对象中只有一份实体,
t.appendChild只是把实体的引用(就是你说的指针)转移到t的子对象中我试过IE的结果就是把o中的childNode移到t中