0
点赞
收藏
分享

微信扫一扫

克隆节点

克隆节点使用 cloneNode()即可,语法:

var 副本元素 = 元素.cloneNode(布尔值);

圆括号中的布尔值,如果是 true,则表示要将这个节点的所有子节点一并克隆,即深度克隆。如果是 false,

表示只克隆这个节点自己,而不克隆它的内部子节点,即浅克隆。

看一个例子:

<!DOCTYPE html>

<html>

<head>

<meta charset=UTF-8>

<title>克隆节点</title>

</head>

<body>

<div id="box1">

<ul>

<li>项目 1</li>

<li>项目 2</li>

<li>项目 3</li>

</ul>

</div>

<div id="box2">

</div>

<script type="text/javascript">

var box1 = document.getElementById("box1");

var box2 = document.getElementById("box2");

//得到 ul

var ul = box1.getElementsByTagName("ul")[0];

//克隆 ul 和 ul 的所有后代(true 表示深度克隆),然后追加到 box2 中

box2.appendChild(ul.cloneNode(true));

</script>

</body>

</html>

程序运行后,原本在 box1 中的无序列表现在被深度克隆了一份并被追加到了 box2 中。程序运行后,打开

审查元素的“Elements”面板检查是否克隆成果

实战案例:九九乘法表

题目:制作一个九九乘法表的表格。

解决题目的思路是使用两层 for 循环嵌套动态创建表格的 tr 和 td 节点,并动态设置 td 的内部内容,完成

九九乘法表的制作。

代码如下:

<script type="text/javascript">

//创建一个表格

var myTable = document.createElement("table");

//使用两层 for 循环嵌套动态创建表格的 tr 和 td 节点

for(var i = 1 ; i <= 9 ; i++){

//创建 tr

var tr = document.createElement("tr");

for(var j = 1 ; j <= 9 ; j++){

//创建 td

var td = document.createElement("td");

//设置 td 内部的文本

td.innerText = i + "×" + j + "=" + (i * j);

//追加 td

tr.appendChild(td);

}

//追加 tr

myTable.appendChild(tr);

}

//追加表格

document.body.appendChild(myTable);

</script>

程序中外层 for 循环用来创建 tr 节点 ,内层 for 循环用来创建 td 节点。内层的 td 节点被追加到了此时

外层创建的 tr 节点内,形成 9 行 9 列的表格。注意 td 内部的 innerText 属性的连字符写法。


举报

相关推荐

0 条评论