js之insertBefore(newElement,oldElement)
2024-08-31 15:14:14
insertBefore的用法,以及注意事项,并且模仿编写insertAfter()方法
DOM提供的一个名为insertBefore()的方法,用来将一个新元素插入到现有的元素的前面。
使用这个方法的条件:
- 想插入的新元素是谁newElement,我们创建的元素
- 插入到谁的前面
- 2个元素拥有共同的父级,这是这个方法的关键,即使新元素和已经存在的元素是同级的,那么他们一定有共同的父级,最基本的父级那就是body
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
window.onload = function() {
var oBox = document.getElementById("box");
var img = document.createElement("img");
img.setAttribute("src","img/aa.jpg");
img.setAttribute("alt","图片");
img.setAttribute("title","大佛");
/*必须有共同的父节点,即使都没有在其他盒子里面,那最起码的父节点就是body*/
oBox.parentNode.insertBefore(img,oBox);
}
</script>
</head>
<body>
<div id="box">
<p>111</p>
<p>222</p>
</div>
</body>
</html>这里在box前面插入一个元素,那么他们的共同父级就是Body,这是毫无疑问的,因此这里必须使用parentNode这个属性
下面模仿上面的insertBefore方法,来写DOM并没有提供的insertAfter方法
function insertAfter(newElement,targetElement) {
//拿到要插入节点的父节点
var parent = targetElement.parentNode;
if(parent.lastChild == targetElement) {
parent.appendChild(newElement);
} else {
parent.insertBefore(newElement,targetElement.nextSibling);
}
}
最新文章
- [Android]电话拨号器开发
- Dedecms有效防止采集的两个实用办法
- Human and AI&#39;s future (reverie)
- 采用Hibernate框架的研发平台如何能够真正兼容Oracle和sqlServer数据库
- 把验证码和生成时间负值给$_SESSION[vCode]生成图像给浏览器
- zz转码问题
- 例题:打印乘法口诀。可能大家一看有点难,但只要理解for 循环嵌套,两层循环,外层循环行数,里层循环列数,搞清楚行数和列数之间的关系,就可以轻松做出这道题
- iOS对象序列化
- Android酷炫实用的开源框架(UI框架) 转
- 利用Android手机里的摄像头进行拍照
- Java API —— IO流(数据操作流 &; 内存操作流 &; 打印流 &; 标准输入输出流 &; 随机访问流 &; 合并流 &; 序列化流 &; Properties &; NIO)
- DLL使用总结
- ALTIUM 10 过孔设置开窗、不开窗
- Loader之一:基本原理
- php - 小型微博系统
- 浅析CQRS的应用部署
- 五十三、linux 编程——TCP 编程基本介绍
- openstack-KVM管理工具
- Ubuntu 16.04 安装Mysql数据库
- 20135202闫佳歆--week2 操作系统是如何工作的--学习笔记
热门文章
- 本书已出版&;lt;拨云见日:基于android的内核与系统架构源代码分析 &;gt;
- Python菜鸟晋级12----多线程
- How to resolve unassigned shards in Elasticsearch——写得非常好
- 关于webuploader跨域解决方法
- oracle中对字符串进行分割,并反回随机段
- mysql索引的注意事项
- pic16F1938
- css3 -阻止元素成为鼠标事件目标 pointer-events
- 在Scrapy中如何利用Xpath选择器从HTML中提取目标信息(两种方式)
- WCF客户端获取服务端异常[自定义异常]