㈠添加元素的步骤

⑴创建空元素

⑵设置关键属性

⑶将元素添加到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添加的更多相关文章

  1. DomFlags - 给 DOM 添加书签,方便调试

    DomFlags 所以一款 Chrome 浏览器扩展程序提,供了一种新的方式与浏览器开发者工具互动.DomFlags 让你可以给 DOM 元素创建快捷键,就像用于导航 DOM 树的书签.它们可以帮助您 ...

  2. zepto | 用事件委托去解决无法给新增添的DOM添加事件的问题

    前段时间在做一个任务的时候,碰见了一个问题:zepto无法用on事件去监听新增加的dom事件.这个问题用live可解决, 但是live在ios下失效,为了解决这个问题,我采用了暴力的方法去解决,每次添 ...

  3. 原生js在IE7下 向dom添加节点的一个bug, (本例为添加hidden input)

    需求是要用js向dom结构增加1个hidden用来存放要post到服务器的数据 var aspnetForm = document.getElementById("aspnetForm&qu ...

  4. dom添加事件

    1.语法:document.getElementById('btn').addEventListener 2.可以添加多个EventListener,且不会覆盖 3.移除EventListener, ...

  5. DOM 添加 / 更新 / 删除 XML (CURD)

    获得Document /**     * 获取文档     * 1.获得实例工厂     * 2.获得解析器     * 3.获得document     */ 添加结点 /**     * 1.获得 ...

  6. 如何给js动态创建的dom添加事件

    delegate() 方法 实例 当点击鼠标时,隐藏或显示 p 元素: $("div").delegate("button","click" ...

  7. Vue(基础五)_vue中用ref和给dom添加事件的特殊情况

    一.前言 这篇文章涉及的主要内容有: 1.ref绑定在标签上是获取DOM对象 2.ref绑定在子组件上获取的是子组件对象 3.案列:自动获取input焦点 二.主要内容 1.基础内容: ref 被用来 ...

  8. dom 添加删除节点

    //找到 div1 var div1 = document.getElementById("div1"); //创建 一个 p标签 var p = document.createE ...

  9. js dom 添加类

    var sheng = document.getElementById("sheng"); ; sheng.onclick = function() { if(this.paren ...

随机推荐

  1. Emgu 学习(7)threshold ,图像过滤

    Threshold 代码如下 static void Main(String[] args) { Mat img = CvInvoke.Imread(@"C:\Users\dell\Pict ...

  2. 记java的那些编辑器的故事之凌嘉文+李晓彤-结对编程

    [写在前面]这次是复用个人项目进行结对编程,其实主要复用的就是凌老板的出题部分和我的文件读写部分,其余部分都是新学的.在这次编程中也涨了很多知识,其中最最最让人哭笑不得的就是:两个人用了不一样的编辑器 ...

  3. (模拟)关于进制的瞎搞---You Are Given a Decimal String...(Educational Codeforces Round 70 (Rated for Div. 2))

    题目链接:https://codeforc.es/contest/1202/problem/B 题意: 给你一串数,问你插入最少多少数可以使x-y型机器(每次+x或+y的机器,机器每次只取最低位--% ...

  4. jQuery Mobile Slider Widget 使用js控制

    jQuery Mobile 滑动条控件 基本用法不用多说了,看这里: http://www.runoob.com/jquerymobile/jquerymobile-form-sliders.html ...

  5. 小白学习django第四站-关联数据库

    使用mysql连接django首先要配置好相关环境 首先在setting.py配置数据库信息(需要现在mysql中创建一个数据库) 在setting.py那个目录的__init__.py文件中写入 之 ...

  6. java web 二维码生成

    pom支持: <!-- 二维码支持包 start--> <dependency> <groupId>com.google.zxing</groupId> ...

  7. mysql添加索引造成的影响

    尽管添加索引可以优化SQL语句的性能,但是添加索引的同时也会带来不小的开销.尤其是在有大量的索引的情况下. mysql添加索引造成的影响如下: 1.DML(数据操作语言)影响,在表上添加缩影会直接影响 ...

  8. windows下php配置环境变量

    这样重启终端后,通过php -v可查看新使用的php版本信息. 注:在path配置在上方的先生效

  9. Spring Boot 获取yaml配置文件信息

    Spring boot 项目启动过程中: org.springframework.boot.SpringApplication#prepareEnvironment 当程序步入listeners.en ...

  10. java实现spark常用算子之intersection

    import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.a ...