zoukankan      html  css  js  c++  java
  • 2020-11-20日报博客-周五

    1.学到的东西:

    DOM:

    * 概念: Document Object Model 文档对象模型
    	* 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作
    
    * W3C DOM 标准被分为 3 个不同的部分:
    
    	* 核心 DOM - 针对任何结构化文档的标准模型
    		* Document:文档对象
    		* Element:元素对象
    		* Attribute:属性对象
    		* Text:文本对象
    		* Comment:注释对象
    
    		* Node:节点对象,其他5个的父对象
    	* XML DOM - 针对 XML 文档的标准模型
    	* HTML DOM - 针对 HTML 文档的标准模型
    
    
    
    
    
    * 核心DOM模型:
    	* Document:文档对象
    		1. 创建(获取):在html dom模型中可以使用window对象来获取
    			1. window.document
    			2. document
    		2. 方法:
    			1. 获取Element对象:
    				1. getElementById()	: 根据id属性值获取元素对象。id属性值一般唯一
    				2. getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
    				3. getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
    				4. getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组
    			2. 创建其他DOM对象:
    				createAttribute(name)
                	createComment()
                	createElement()
                	createTextNode()
    		3. 属性
    	* Element:元素对象
    		1. 获取/创建:通过document来获取和创建
    		2. 方法:
    			1. removeAttribute():删除属性
    			2. setAttribute():设置属性
    	* Node:节点对象,其他5个的父对象
    		* 特点:所有dom对象都可以被认为是一个节点
    		* 方法:
    			* CRUD dom树:
    				* appendChild():向节点的子节点列表的结尾添加新的子节点。
    				* removeChild()	:删除(并返回)当前节点的指定子节点。
    				* replaceChild():用新节点替换一个子节点。
    		* 属性:
    			* parentNode 返回节点的父节点。
    
    
    * HTML DOM
    	1. 标签体的设置和获取:innerHTML
    	2. 使用html元素对象的属性
    	3. 控制元素样式
    		1. 使用元素的style属性来设置
    			如:
    				 //修改样式方式1
    		        div1.style.border = "1px solid red";
    		        div1.style.width = "200px";
    		        //font-size--> fontSize
    		        div1.style.fontSize = "20px";
    		2. 提前定义好类选择器的样式,通过元素的className属性来设置其class属性值。
    

    事件监听机制:

    * 概念:某些组件被执行了某些操作后,触发某些代码的执行。	
    	* 事件:某些操作。如: 单击,双击,键盘按下了,鼠标移动了
    	* 事件源:组件。如: 按钮 文本输入框...
    	* 监听器:代码。
    	* 注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。
    
    
    * 常见的事件:
    	1. 点击事件:
    		1. onclick:单击事件
    		2. ondblclick:双击事件
    	2. 焦点事件
    		1. onblur:失去焦点
    		2. onfocus:元素获得焦点。
    
    	3. 加载事件:
    		1. onload:一张页面或一幅图像完成加载。
    
    	4. 鼠标事件:
    		1. onmousedown	鼠标按钮被按下。
    		2. onmouseup	鼠标按键被松开。
    		3. onmousemove	鼠标被移动。
    		4. onmouseover	鼠标移到某元素之上。
    		5. onmouseout	鼠标从某元素移开。
    

    	5. 键盘事件:
    		1. onkeydown	某个键盘按键被按下。	
    		2. onkeyup		某个键盘按键被松开。
    		3. onkeypress	某个键盘按键被按下并松开。
    
    	6. 选择和改变
    		1. onchange	域的内容被改变。
    		2. onselect	文本被选中。
    
    	7. 表单事件:
    		1. onsubmit	确认按钮被点击。
    		2. onreset	重置按钮被点击。
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>动态表格</title>
    
        <style>
            table{
                border: 1px solid;
                margin: auto;
                 500px;
            }
    
            td,th{
                text-align: center;
                border: 1px solid;
            }
            div{
                text-align: center;
                margin: 50px;
            }
        </style>
    
    </head>
    <body>
    
    <div>
        <input type="text" id="id" placeholder="请输入编号">
        <input type="text" id="name"  placeholder="请输入姓名">
        <input type="text" id="gender"  placeholder="请输入性别">
        <input type="button" value="添加" id="btn_add">
    
    </div>
    
    
    <table>
        <caption>学生信息表</caption>
        <tr>
            <th>编号</th>
            <th>姓名</th>
            <th>性别</th>
            <th>操作</th>
        </tr>
    
        <tr>
            <td>1</td>
            <td>令狐冲</td>
            <td>男</td>
            <td><a href="javascript:void(0);" onclick="delTr(this);">删除</a></td>
        </tr>
    
        <tr>
            <td>2</td>
            <td>任我行</td>
            <td>男</td>
            <td><a href="javascript:void(0);" onclick="delTr(this);">删除</a></td>
        </tr>
    
        <tr>
            <td>3</td>
            <td>岳不群</td>
            <td>?</td>
            <td><a href="javascript:void(0);" onclick="delTr(this);" >删除</a></td>
        </tr>
    
    
    </table>
    
    
    <script>
        /*
            分析:
                1.添加:
                    1. 给添加按钮绑定单击事件
                    2. 获取文本框的内容
                    3. 创建td,设置td的文本为文本框的内容。
                    4. 创建tr
                    5. 将td添加到tr中
                    6. 获取table,将tr添加到table中
                2.删除:
                    1.确定点击的是哪一个超链接
                        <a href="javascript:void(0);" onclick="delTr(this);" >删除</a>
                    2.怎么删除?
                        removeChild():通过父节点删除子节点
    
         */
    
        //1.获取按钮
       /* document.getElementById("btn_add").onclick = function(){
            //2.获取文本框的内容
            var id = document.getElementById("id").value;
            var name = document.getElementById("name").value;
            var gender = document.getElementById("gender").value;
    
            //3.创建td,赋值td的标签体
            //id 的 td
            var td_id = document.createElement("td");
            var text_id = document.createTextNode(id);
            td_id.appendChild(text_id);
            //name 的 td
            var td_name = document.createElement("td");
            var text_name = document.createTextNode(name);
            td_name.appendChild(text_name);
            //gender 的 td
            var td_gender = document.createElement("td");
            var text_gender = document.createTextNode(gender);
            td_gender.appendChild(text_gender);
            //a标签的td
            var td_a = document.createElement("td");
            var ele_a = document.createElement("a");
            ele_a.setAttribute("href","javascript:void(0);");
            ele_a.setAttribute("onclick","delTr(this);");
            var text_a = document.createTextNode("删除");
            ele_a.appendChild(text_a);
            td_a.appendChild(ele_a);
    
            //4.创建tr
            var tr = document.createElement("tr");
            //5.添加td到tr中
            tr.appendChild(td_id);
            tr.appendChild(td_name);
            tr.appendChild(td_gender);
            tr.appendChild(td_a);
            //6.获取table
            var table = document.getElementsByTagName("table")[0];
            table.appendChild(tr);
        }*/
    
       //使用innerHTML添加
        document.getElementById("btn_add").onclick = function() {
            //2.获取文本框的内容
            var id = document.getElementById("id").value;
            var name = document.getElementById("name").value;
            var gender = document.getElementById("gender").value;
    
            //获取table
            var table = document.getElementsByTagName("table")[0];
    
            //追加一行
            table.innerHTML += "<tr>
    " +
                "        <td>"+id+"</td>
    " +
                "        <td>"+name+"</td>
    " +
                "        <td>"+gender+"</td>
    " +
                "        <td><a href="javascript:void(0);" onclick="delTr(this);" >删除</a></td>
    " +
                "    </tr>";
        }
    
    
        //删除方法
        function delTr(obj){
            var table = obj.parentNode.parentNode.parentNode;
            var tr = obj.parentNode.parentNode;
    
            table.removeChild(tr);
        }
    
    
    </script>
    
    </body>
    </html>
    

    2.遇到的问题:动态表格的实现

    3.明日计划:继续学习JavaScript技术

  • 相关阅读:
    随机数生成器
    赌博的艺术
    基本算法——包罗万象
    对于搜索的新理解
    关于动态规格的新理解
    发现的好东西——bitset
    高精度(重定义版)——来自
    ac自动机(模板)
    数据采集框架Gobblin简介
    Hadoop的数据采集框架
  • 原文地址:https://www.cnblogs.com/gongyunlong-blogs/p/14139425.html
Copyright © 2011-2022 走看看