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 ...
随机推荐
- 多标签分类(multi-label classification)综述
意义 网络新闻往往含有丰富的语义,一篇文章既可以属于“经济”也可以属于“文化”.给网络新闻打多标签可以更好地反应文章的真实意义,方便日后的分类和使用. 难点 (1)类标数量不确定,有些样本可能只有一个 ...
- 课程计划安排 ver: 2016-12-14
录的越多,后续肯定会涨价. <x86 从实模式到保护模式> 这本书涉及到除了汇编语言,还有一些计算机架构和操作系统方面相关的知识点. 不仅为学习高级编程语言打下了非常扎实的基础,学完C++ ...
- 动态树(LCT、Top Tree、ETT)
LCT Upd: 一个细节:假如我们要修改某个节点的数据,那么要先把它makeroot再修改,改完之后pushup. LCT是一种维护森林的数据结构,本质是用Splay维护实链剖分. 实链剖分大概是这 ...
- PHP 时间转几分几秒
public static function timetodate($c){ if($c < 86400){ $time = explode(' ',gmstrftime('%H %M %S', ...
- python_0基础开始_day09
第九节 1,函数初始 s = "qwertyuiop"n = 0for i in s: n += 1print(n)lst = [1,2,3,4,5]n = 0for i ...
- springboot读取配置不存在报错
@Value("${log.regId}")private String regId = "123123"; String regId = env.getPro ...
- js制作留言板
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- ListVie的用法
1.在布局中放入一个listView <ListView android:id="@+id/list_view" android:layout_width="mat ...
- SpringMVC整体架构
总结: 1. 用户发起请求到前端控制器(DispatchServlet): 2. 前端控制器没有处理业务逻辑的能力,需要找到具体的模型对象处理(Handler),到处理器映射器中查找Handler对象 ...
- java实现spark常用算子之flatmap
import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...