DOM基础操作实战代码
对于已经讲解给大家的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’;
不过,还有一个最取巧的办法,那就是直接用innerHTML。
div.innerHTML = <p class=“slogan”>HelloWorld</p>
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);
}
}
这里是利用了原生的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);
}
}
DOM基础操作实战代码的更多相关文章
- JavaScript DOM 基础操作
JavaScript DOM 基础操作 一.获取元素的六方式 document.getElementById('id名称') //根据id名称获取 document.getElementsByclas ...
- PHP原生DOM对象操作XML'代码'
对于操作XML类型文件,PHP内置有一套DOM对象可以进行处理.对XML的操作,从创建.添加到修改.删除都可以使用DOM对象中的函数来进行. 创建 创建一个新的XML文件,并且写入一些数据到这个XML ...
- DOM基础操作(三)
DOM剩余的两个操作一并带来! 1.删除操作 removeChild 这个方法依然是父级调用的,参数就是要删除的子节点,其实实际上是剪切,这个方法会把我们删除掉的元素给返回,我们可以用一个变量去保存这 ...
- DOM基础操作(二)
插入操作 1.appendChild(child); 这个是父级调用的方法,它会将child元素插入到父级里面,而且是放到逻辑后面的位置上. div.appendChild(comment); ...
- DOM基础操作(一)
DOM的基本操作有四种,我们会逐一给大家进行展示 增加操作 1.创建元素节点 createElement 我们可以通过document.createElement(‘div’);这个方法来创建一个元素 ...
- JavaScript学习 - 基础(六) - DOM基础操作
DOM: DOM定义了访问HTML 和XML 文档的标准:1.核心DOM 针对结构化文档的标准模型2.XMK DOM 针对XML文档的标准模型3.HTML DOM 针对HTML文档的标准模型 DOM节 ...
- javascript DOM基础操作
DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口).DOM描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM ...
- jQuery~DOM基础操作
操作DOM 1.什么是DOM:document object model文档对象模型 2.树形结构 3.什么是节点(node):DOM结构中最小单位,元素.文本.属性...创建节点 var $div ...
- DOM基础操作
本文地址:http://www.cnblogs.com/veinyin/p/7606972.html 1 访问 HTML 元素 常用方法 document.getElementById(" ...
随机推荐
- 孩子们各显神通对付 iOS 12「屏幕使用时间」的限制
简评:2018 年秋季,苹果公司推出了 iOS 12,其中备受好评的一项改变是:增加了屏幕使用时间限制,以减轻沉迷手机的状况.三个月过去后,这项功能似乎并没有对孩子造成太多困扰,道高一尺魔高一丈,孩子 ...
- 题解 [ZJOI2010]数字计数
传送门<-洛谷版 电梯<-bzoj版 这份代码是新手友好版,也算是自用版,注释自认为写的很详细. 希望对要学数位dp的人有所帮助 这份题解是记忆化搜索版的数位DP,个人还是比较建议用这种方 ...
- 基于iTop4412的FM收音机系统设计(二)
说明:第一版架构为:APP+JNI(NDK)+Driver(linux),优点是开发简单,周期短,也作为自己的毕业设计 现在更新第二版,FM服务完全植入Android系统中,成为系统服务,架构为:AP ...
- WebFrom局部刷新
因为页面用的是服务器的控件 结果每次触发后导致页面刷新 把刚填完的数据给整没了 很烦 在网上找了蛮久才找到的一个方法 战略插眼 以后还有用到的时候 <asp:ScriptManager runa ...
- SpringMVC 的 切面
官网路径:https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans 一:术语介绍 通知 ...
- 对 云寻觅贴吧(http://tieba.yunxunmi.com/)的简要分析
1. 云寻觅的用户需求:一方面是很多用户有很多问题,需要高质量的答案,但是搜索引擎无法满足这种需求,百度知道做得不够好,所以用户需要一个平台可以解决他们的问题:另外一方面,又有很多经济良好,时间较为充 ...
- 下载windows版本apache网页服务器
1.进入apache服务器官网http://httpd.apache.org/,这里我们以下载稳定版的httpd 2.4.25为例,点击download. 2.点击链接Files for Micros ...
- centos安装图形操作界面
yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
- js中一次性注册多个事件
在js中,如果想一次性给一个控件或者标签初测多个事件的方法: 假如有个<input>标签: <input id=”inputValue” value=”www.baidu.com”/ ...
- 错误:‘lock_guard’ 在此作用域中尚未声明
解决:修改报错文件,加入#include <boost/thread/lock_guard.hpp>