























element.appendChild(newNode) 方法中,如果 newNode本身是Dom中的一个节点. 那么appendChild方法执行的不再
是append操作了,而是一个move操作. 比如说:
<html>
<script>
function f(){
document.body.appendChild(document.getElementById("btn1"))
}
</script>
<body onload=f()>
<input type=button id=btn1 value="button 1">
<input type=button id=btn2 value="button 2">
<input type=button id=btn3 value="button 3">
<input type=button id=btn4 value="button 4">
</body>
</html>
因为btn1本身是dom 中的一个节点,所以 appendChild操作会将 btn1 移动到 btn4的后面,而不是复制.
利用这个特点,我们可以用极少量的代码实现另类的文字无缝滚动.
代码如下:
appendChild实现的无缝滚动
呵呵,是不是很简洁呢, 这个方法我在今年五月份的时候发到了CSDN上,当时引起了许许多多的JavaScript爱好
者的大讨论, 那帖子被CSDN首页置顶,三百人参与回复讨论.
原贴地址: 最简单的无缝滚动程序,只需要五行代码
除了这个应用, appendChild的这个特性还可以在表格排序上大展身手.
注意,下面表格排序代码只是为了说明 appendChild的用法,没有在 ff中测试.
页面加载后,表格根据第一列数字由小到大进行排序<br><table border id="tbl" width="40%">
<tr><td>12</td><td>1</td></tr>
<tr><td>9</td><td>2</td></tr>
<tr><td>15</td><td>3</td></tr>
<tr><td>18</td><td>4</td></tr>
<tr><td>1</td><td>5</td></tr>
</table><script>// by Go_Rush(阿舜) from http://ashun.cnblogs.com/
function $A(arrayLike){
for(var i=0,ret=[];i<arrayLike.length;i++) ret.push(arrayLike[i]);
return ret
}
Array.prototype.each
=function(f){for(var i=0;i<this.length;i++) f(this[i],i,this)}window.onload
=function(){此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。