|
好家伙,我回来了,
本篇为《JS高级程序设计》第十四章“DOM编程”学习笔记
1.DOM编程
我们知道DOM是HTML文档的编程接口,
我们可以通过HTML代码实现DOM操作,
也同样能够通过JavaScript实现DOM操作。
2.JS操作DOM
我们来简单的举个例子:
随便开一个空白的html页面
- <strong><!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
-
- <h1>来试试使用js实现dom操作吧
- </h1>
-
- </body>
- </html></strong>
复制代码 效果如下:
此处我们直接在html元素中进行操作,在页面中添加了一行标题(- <strong>
- <h1>来试试使用js实现dom操作吧
- </h1>
- </strong>
复制代码 )
接下来我们使用JS进行相同的DOM操作- <strong><!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
-
- </body>
- </html></strong>
复制代码
我们实现了同样的效果
3.动态脚本
[/code]
3.2.通过DOM编程创建这个节点
- <strong>let script = document.createElement("script");
- script.src = "plane.js";
- document.body.appendChild(script); </strong>
复制代码 (DOM编程农夫三拳:1.新建节点,2.某些操作,3.挂载到父节点上)
我们把上述过程抽象成一个函数- <strong>function loadScript(url) {
- let script = document.createElement("script");
- script.src = url;
- document.body.appendChild(script);
- } <br><br>loadScript("plane.js");<br>//外部文件名作为参数</strong>
复制代码 (便于使用)
3.3.script的text属性
现在就有人会想了,如果我有一大串方法或者函数,该怎么处理:- [/code]
- [b]js开发者早就替我们想好了,<script>元素上有一个 text 属性,可以用来添加 JavaScript 代码[/b]
- [code]<strong> let script = document.createElement("script");
- script.text = "function dosomething(){alert('hi');} dosomething()";
- document.body.appendChild(script);</strong>
复制代码
4.动态样式
CSS 样式在 HTML 页面中可以通过两个元素加载。元素用于包含 CSS 外部文件,而 [/code]DOM编程:- <strong>let style = document.createElement("style");
- style.type = "text/css";
- style.appendChild(document.createTextNode("body{background-color:red}"));
- let head = document.getElementsByTagName("head")[0];
- head.appendChild(style);</strong>
复制代码
5.DOM操作表格:
HTML 中最复杂的结构之一,通常要涉及大量标签,其相应DOM操作也十分复杂- <strong><table border="1" width="100%">
- <tbody>
- <tr>
- <td>Cell 1,1</td>
- <td>Cell 2,1</td>
- </tr>
- <tr>
- <td>Cell 1,2</td>
- <td>Cell 2,2</td>
- </tr>
- </tbody>
- </table> </strong>
复制代码 以这个表格为例- <strong>// 创建表格
- let table = document.createElement("table");
- table.border = 1;
- table.width = "100%";
- // 创建表体
- let tbody = document.createElement("tbody");
- table.appendChild(tbody);
- // 创建第一行
- let row1 = document.createElement("tr");
- tbody.appendChild(row1);
- let cell1_1 = document.createElement("td");
- cell1_1.appendChild(document.createTextNode("Cell 1,1"));
- row1.appendChild(cell1_1);
- let cell2_1 = document.createElement("td");
- cell2_1.appendChild(document.createTextNode("Cell 2,1"));
- row1.appendChild(cell2_1);
- // 创建第二行
- let row2 = document.createElement("tr");
- tbody.appendChild(row2);
- let cell1_2 = document.createElement("td");
- cell1_2.appendChild(document.createTextNode("Cell 1,2"));
- row2.appendChild(cell1_2);
- let cell2_2= document.createElement("td");
- cell2_2.appendChild(document.createTextNode("Cell 2,2"));
- row2.appendChild(cell2_2);
- // 把表格添加到文档主体
- document.body.appendChild(table); </strong>
复制代码 (看的眼都花了,八个标签不停套娃,DOM操作十分复杂)
于是,为了方便创建表格,HTML DOM 给、和 元素添加了一些属性和方法。
- <strong><table>元素添加了以下属性和方法:
- caption,指向<caption>元素的指针(如果存在);
- tBodies,包含<tbody>元素的 HTMLCollection;
- tFoot,指向<tfoot>元素(如果存在);
- tHead,指向<thead>元素(如果存在);
- rows,包含表示所有行的 HTMLCollection;
- createTHead(),创建<thead>元素,放到表格中,返回引用;
- createTFoot(),创建<tfoot>元素,放到表格中,返回引用;
- createCaption(),创建<caption>元素,放到表格中,返回引用;
- deleteTHead(),删除<thead>元素;
- deleteTFoot(),删除<tfoot>元素;
- deleteCaption(),删除<caption>元素;
- deleteRow(pos),删除给定位置的行;
- insertRow(pos),在行集合中给定位置插入一行。
- <tbody>元素添加了以下属性和方法:
- rows,包含<tbody>元素中所有行的 HTMLCollection;
- deleteRow(pos),删除给定位置的行;
- insertRow(pos),在行集合中给定位置插入一行,返回该行的引用。
- <tr>元素添加了以下属性和方法:
- cells,包含<tr>元素所有表元的 HTMLCollection;
- deleteCell(pos),删除给定位置的表元;
- insertCell(pos),在表元集合给定位置插入一个表元,返回该表元的引用</strong>
复制代码- <strong>// 创建表格
- let table = document.createElement("table");
- table.border = 1;
- table.width = "100%";
- // 创建表体
- let tbody = document.createElement("tbody");
- table.appendChild(tbody);
- <br>// 创建第一行
- tbody.insertRow(0);
- //插入单元
- tbody.rows[0].insertCell(0);
- //单元插入元素
- tbody.rows[0].cells[0].appendChild(document.createTextNode("Cell 1,1"));
- tbody.rows[0].insertCell(1);
- tbody.rows[0].cells[1].appendChild(document.createTextNode("Cell 2,1"));
- // 创建第二行
- tbody.insertRow(1);
- tbody.rows[1].insertCell(0);
- tbody.rows[1].cells[0].appendChild(document.createTextNode("Cell 1,2"));
- tbody.rows[1].insertCell(1);
- tbody.rows[1].cells[1].appendChild(document.createTextNode("Cell 2,2"));
- // 把表格添加到文档主体
- document.body.appendChild(table); </strong>
复制代码 这样一看,整个表格的DOM操作变得十分明了,且逻辑清晰
6.小结
感觉DOM操作是整个JS学习线路上非常重要的一环,这个感觉重要到就属于是别人默认你会的那种,还是得记一记.
比如某一天你要给别人写包了,被人给你一个div,然后你不会操作,就很尴尬.所以还是得学
来源:https://www.cnblogs.com/FatTiger4399/p/17138374.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|