DOM添加
㈠添加元素的步骤
⑴创建空元素
⑵设置关键属性
⑶将元素添加到DOM树
㈡创建空元素
var elem = document.createElement('table');
示例:
var table = document.createElement('table');
var tr = document.createElement('tr');
var td = document.createElement('td');
var td = document.createElement('td');
console.log(table);
㈢设置关键属性
a.innerHTML = "go to tmooc"
a.herf = "http://tmooc.cn";
<a href = "http://tmooc.cn">go to tmooc</a>
㈣设置关键样式
a.style.opacity = "1";
a.style.csssText = "width:100px;height:100px";
㈤将元素添加到DOM树
第一种方法:
parentNode.appendChild(childNode)
可用于将为一个父元素追加最后一个子节点
示例:
var div = document.createElement('div');
var txt = document.createTextNode('版权声明');
div.appendChild(txt);
document.body.appendChild(div);
第二种方法:
parentNode.insertBefore(newChild,existingChild) 用于在父元素中的指定子节点之前添加一个新的子节点
示例:
<ul id = "menu">
<li>首页</li>
<li>联系我们</li>
</ul> var ul = document.getElementById('menu');
var newLi = document.createElement('li'); ul.inserBefore(newLi,ul.lastChild);
㈥添加元素优化
①尽量少的操作DOM树
①为什么?
每次修改DOM树,都导致重新layout
⑴如果同时创建父元素和子元素时,建议在内存条中先将子元素添加到父元素,再将父元素一次性挂到页面
⑵如果只添加多个平级子元素时,就要将所有子元素,临时添加到文档片段中。再将文档片段整体添加到页面
②文档片段中:内存中,临时保存多个子元素的虚拟父元素。用法和普通父元素完全一样
如何?
⑴创建片段
var frag = document.createDocumentFragment();
⑵将子元素临时追加到frag中
frag.appendChild(child);
⑶将frag追加到页面
parent.appendChild(frag);
强调:append之后,frag自动释放,不会占用元素
DOM添加的更多相关文章
- DomFlags - 给 DOM 添加书签,方便调试
DomFlags 所以一款 Chrome 浏览器扩展程序提,供了一种新的方式与浏览器开发者工具互动.DomFlags 让你可以给 DOM 元素创建快捷键,就像用于导航 DOM 树的书签.它们可以帮助您 ...
- zepto | 用事件委托去解决无法给新增添的DOM添加事件的问题
前段时间在做一个任务的时候,碰见了一个问题:zepto无法用on事件去监听新增加的dom事件.这个问题用live可解决, 但是live在ios下失效,为了解决这个问题,我采用了暴力的方法去解决,每次添 ...
- 原生js在IE7下 向dom添加节点的一个bug, (本例为添加hidden input)
需求是要用js向dom结构增加1个hidden用来存放要post到服务器的数据 var aspnetForm = document.getElementById("aspnetForm&qu ...
- dom添加事件
1.语法:document.getElementById('btn').addEventListener 2.可以添加多个EventListener,且不会覆盖 3.移除EventListener, ...
- DOM 添加 / 更新 / 删除 XML (CURD)
获得Document /** * 获取文档 * 1.获得实例工厂 * 2.获得解析器 * 3.获得document */ 添加结点 /** * 1.获得 ...
- 如何给js动态创建的dom添加事件
delegate() 方法 实例 当点击鼠标时,隐藏或显示 p 元素: $("div").delegate("button","click" ...
- Vue(基础五)_vue中用ref和给dom添加事件的特殊情况
一.前言 这篇文章涉及的主要内容有: 1.ref绑定在标签上是获取DOM对象 2.ref绑定在子组件上获取的是子组件对象 3.案列:自动获取input焦点 二.主要内容 1.基础内容: ref 被用来 ...
- dom 添加删除节点
//找到 div1 var div1 = document.getElementById("div1"); //创建 一个 p标签 var p = document.createE ...
- js dom 添加类
var sheng = document.getElementById("sheng"); ; sheng.onclick = function() { if(this.paren ...
随机推荐
- PTA(Basic Level)1021.个位数统计
给定一个 k 位整数 \(N=d_{k−1}10^{k−1}+⋯+d_110^1+d_0 (0≤d_i≤9, i=0,⋯,k−1, d_{k−1}>0)\),请编写程序统计每种不同的个位数字出现 ...
- python_0基础开始_day06
第六节 1.小数据池 ==,is,id ==:查看等号两边的值是否一样 a = 9b = 9print(a == b) # 返回Truec = "dog"d = "dog ...
- Django重写用户模型报错has no attribute 'USERNAME_FIELD'
目录 Django重写用户模型报错has no attribute 'USERNAME_FIELD' 在重写用户模型时报错:AttributeError: type object 'UserProfi ...
- 分布式---Raft算法
6.Raft Raft也是分布式一致性协议,主要是用来竞选主节点. 单个Candidate的竞选 有三种节点:Follower,Candidate和Leader.Leader会周期性的发送心跳 ...
- tf.strided_slice函数
在keras_yolo中model函数下的yolo_head下:grid_shape = K.shape(feats)[1:3] grid_shape: <tf.Tensor 'strided_ ...
- js中new到底做了什么?如何重写new?
new 构造函数()执行顺序1.在堆中开辟对象内存空间, 记为obj2.在obj 中添加__proto__属性并指向 构造函数.prototype3.将构造函数中的this 指向obj4.执行构造函数 ...
- 抗D十招:十个方法完美解决DDoS攻击防御难题
可以说,DDoS是目前最凶猛.最难防御的网络攻击之一.现实情况是,这个世界级难题还没有完美的.彻底的解决办法,但采取适当的措施以降低攻击带来的影响.减少损失是十分必要的.将DDoS防御作为整体安全策略 ...
- Js 将图片的绝对路径转换为base64编码(2)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- pamamiko的学习笔记
pamamiko的学习笔记 Paramiko包含两个核心组件,一个为SSHClient类,另一个为SFTPClient类, 一,paramiko的连接有两种方式,一种是通过paramiko.SSHCl ...
- tp5之允许跨域请求
一.在app顶层创建文件common\behavior\CronRun.php 写入以下代码 <?php namespace app\common\behavior; use think\Exc ...