对于已经讲解给大家的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. django基础2

    一. 使用原生sql,了解即可 使用原生sql的目的:解决一些复杂的sql不能用ORM方式写出的问题 有三种方式如下 1. extra: 结果集修改器,一种提供额外查询参数的机制 2. raw:执行原 ...

  2. java后台简单从腾讯云下载文件通知前端以附件的形式保存

    腾讯云对象存储和阿里云差不多 这是我的配置 /** * 腾讯云client * @return COSClient */ public static COSClient getCOSClient() ...

  3. Oracle执行SQL语句的过程

    转载至:http://blog.csdn.net/aqszhuaihuai/article/details/7024551 当我们提交一条sql语句时,Oracle会做哪些操作呢? Oracle会为每 ...

  4. 基于wavesurfer.js的超大音频的渐进式请求实现

    最近在对超大音频的渐进式请求实现上面消耗了不少时间,主要是因为一对音频的基本原理不太理解,二刚开始的时候太依赖插件,三网上这块的资料找不到只能靠自己摸索.由于交互复杂加上坑比较多,我怕描述不清,这里主 ...

  5. php 判断两个时间段是否有交集

    一开始,没啥思路,全靠百度,记录一下哈 public function demo(){ //例子 $astart = strtotime("1995-06-16 12:00:00" ...

  6. Bluetooth Lowe Energy

    BTL---------- // Wikipedia  --------The first review paper to read when you counterred a new filed . ...

  7. CPU飚高问题排查基本步骤

    CPU 飚高 一般是死循环或者死锁问题导致. 1. 通过 top  命令找到 CPU 消耗最高的进程,并记住进程 ID {pid}.top -M -n 2 -d 3 >{pid}/top.txt ...

  8. Mac 10.12安装Command+Q误按提示工具

    说明:很多时候不小心会按强制关闭而无任何提示,这款工具能延迟关闭,并有相应的提示. 下载: (链接: https://pan.baidu.com/s/1bpyJMPL 密码: bqn1)

  9. SpringMVC 过滤器

    参考: http://qq-22530757.iteye.com/blog/2177513 http://www.jdon.com/dl/best/spring-security.html https ...

  10. java回调方法之理解

    以前经常看见"回调方法(或回调函数)"一词,但是没有了解过是什么意思,更不知道用法.现在从网络上搜集了一些很好的资料,自己又整理一下,作为自己的笔记,也作为学习过程中的一个小脚印. ...