对于已经讲解给大家的DOM实战,我今天给大家几个实战代码,可以让大家加深对此的理解!

1.用DOM动态生成这样一个结构:

 <div class=”example”>

       <p class=”slogan”>HelloWorld</p>

 </div>

我认为中规中矩的写法是这个样子的:

   var div = document.createElement(‘div’),
p = document.createElement(‘p’),
text = document.create(‘HelloWorld’);
div.setAttribute(‘class’, ‘example’);
p.setAttribute(‘class’, ‘slogan’);
p.appendChild(text);
div.appendChild(p);
document.body.append(div);
JavaScript; “复制代码”); “查看纯文本代码”); “返回代码高亮”)

• 不过这里有点小提示,节点的className属性可以读写操作class。

因此这里我们为标签赋类名的值的时候可以不用setAttribute,可以直接用className。

   div.className = ‘example’;  p.className = ‘slogan’;  
JavaScript; “复制代码”); “查看纯文本代码”); “返回代码高亮”)

不过,还有一个最取巧的办法,那就是直接用innerHTML。

  div.innerHTML = <p class=“slogan”>HelloWorld</p> 
JavaScript; “复制代码”); “查看纯文本代码”); “返回代码高亮”)

2.封装函数InsertAfter();功能类似insertBefore,直接在原型链上编程,可以忽略老版本的浏览器。

代码:


   Element.insertAfter = function (targetNode, afterNode) {
var nextSib = after.nextElementSibling;
if(this.children.length <= 1 || !nextSib) {
this.appendChild(targetNode);
}else {
this.insertBefore(targetNode, nextSibling);
}
}
JavaScript; “复制代码”); “查看纯文本代码”); “返回代码高亮”)

这里是利用了原生的insertBefore方法,我们检测当只有一个子元素或者我们要找的元素就是最后一个,那么直接调用appendChild方法就可以,否则就找到要找的元素的下一个,然后把它的下一个元素当做insert的元素调用insertBefore方法就可以了。

3.封装remove()函数,使得child.remove()可以销毁自身。

看题目的要求就是要在原型链上编程。

代码:

   Element.prototype.remove = function () {
var parent = this.parentNode;
parent.removeChild(this);
}
JavaScript; “复制代码”); “查看纯文本代码”); “返回代码高亮”)

这个问题的代码其实很简单,只要找到这个元素的父级,然后让父级删除掉这个元素就可以了。

4.将目标节点内部的节点顺序逆序。

eg: <div><p></p><a></a></div>    —>

<div><a></a><p></p></div>

对于这个题目,我的做法是利用我们插入的元素如果是本身就存在的,那么就会剪切到新的位置上这个特性来做的。

代码:


  Element.prototype.reverseElement = function(){
var len = this.childNodes.length,
child,
first = this.firstChild;
for (var i = 0; i < len - 1; i++){
child = this.lastChild;
this.insertBefore(child, first);
}
}
JavaScript; “复制代码”); “查看纯文本代码”); “返回代码高亮”)

DOM基础操作实战代码的更多相关文章

  1. JavaScript DOM 基础操作

    JavaScript DOM 基础操作 一.获取元素的六方式 document.getElementById('id名称') //根据id名称获取 document.getElementsByclas ...

  2. PHP原生DOM对象操作XML'代码'

    对于操作XML类型文件,PHP内置有一套DOM对象可以进行处理.对XML的操作,从创建.添加到修改.删除都可以使用DOM对象中的函数来进行. 创建 创建一个新的XML文件,并且写入一些数据到这个XML ...

  3. DOM基础操作(三)

    DOM剩余的两个操作一并带来! 1.删除操作 removeChild 这个方法依然是父级调用的,参数就是要删除的子节点,其实实际上是剪切,这个方法会把我们删除掉的元素给返回,我们可以用一个变量去保存这 ...

  4. DOM基础操作(二)

    插入操作 1.appendChild(child); 这个是父级调用的方法,它会将child元素插入到父级里面,而且是放到逻辑后面的位置上.   div.appendChild(comment);   ...

  5. DOM基础操作(一)

    DOM的基本操作有四种,我们会逐一给大家进行展示 增加操作 1.创建元素节点 createElement 我们可以通过document.createElement(‘div’);这个方法来创建一个元素 ...

  6. JavaScript学习 - 基础(六) - DOM基础操作

    DOM: DOM定义了访问HTML 和XML 文档的标准:1.核心DOM 针对结构化文档的标准模型2.XMK DOM 针对XML文档的标准模型3.HTML DOM 针对HTML文档的标准模型 DOM节 ...

  7. javascript DOM基础操作

    DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口).DOM描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM ...

  8. jQuery~DOM基础操作

    操作DOM 1.什么是DOM:document object model文档对象模型 2.树形结构 3.什么是节点(node):DOM结构中最小单位,元素.文本.属性...创建节点 var $div ...

  9. DOM基础操作

    本文地址:http://www.cnblogs.com/veinyin/p/7606972.html  1 访问 HTML 元素 常用方法 document.getElementById(" ...

随机推荐

  1. 火狐浏览器下,td 直接使用position:relative;和background:;产生的边框消失问题

    消失示例: td{ width:40px; height:28px; position:relative; background:#ccc; } 出现问题 问题原因: 我的理解是各个浏览器之间对于ba ...

  2. 学习前端页面css定位

    css元素框定位 一.相对定位: 相对定位是一个非常容易掌握的概念.如果对一个元素进行相对定位,它将出现在它所在的位置上.然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动.pos ...

  3. 46.ActiveMQ开篇(Hello World、安全认证、Connection、Session、MessageProducer、MessageConsumer)

    要给有能力的人足够的发挥空间,公司可以养一些能力平平甚至是混日子的人,但绝不能让这些人妨碍有能力的人,否则这样的环境不留也罢. 一.背景介绍 CORBA\DCOM\RMI等RPC中间件技术已经广泛应用 ...

  4. table组件选中数据回显

    table组件多选状态下,把已选择的数据回显,需要在多选列上加上一个属性 :reserve-selection="true" 实例如下: <el-table :data=&q ...

  5. 04-树5 Root of AVL Tree (25 分)

    An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...

  6. 三、OPENERP 中的对象关系类型

    OE中的对象关系一共分四种,one2one,one2many,many2one,many2many.他们的意思分别是一对一,一对多,多对一以及多对多. 我们新建一个模块来测试这四种类型 1.one2o ...

  7. QQ空间首页背景图片淡出解析与不足完善

    一件事情的发生总是有原因的,当然更多的是对技术本身的追求,一定要搞懂啦,废话不多说,大宝剑直插主题. 起因 以前做过一个xx项目,在登陆界面背景图片中,直接引用了一张大图,css类似于这样(backg ...

  8. MarkDown编辑使用指南

    MarkDown Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 区块元素 标题title # h1 ## h2 ### h3 # ...

  9. 【JVM调优系列】----CPU过高的分析与解决方案

    1.首先通过top命令查询当前进程所占cpu的一个比重

  10. 仿58同城UITableViewCell动画

    之前看58同城APP有一个页面中Cell依次从右向左移动,今天试着做了下. 在做的过程中也遇到了几个小的问题,也算是注意点吧. 1.Cell出现时每个Cell的动画时间一样,导致没有依次移动的效果. ...