封装insertAfter()方法

在JS中,系统提供了Node.insertBefore(a, b)方法,在参考节点b之前插入一个拥有指定父节点Node的子节点a。

我们可以封装一个类似insertBefore()的函数 inertAfter(a, b),实现在参考节点b之后插入一个拥有指定父节点Node的子节点a。

思路:获取参考节点afterNode的下一个元素节点,利用insertBefore操作完成相应功能

    //在原型上进行封装Element.prototype.insertAfter = function(targetNode, afterNode){// 获取afterNode节点的下一个元素节点var beforeNode = afterNode.nextElementSibling;// 处理afterNode为最后一个子元素的情况if(beforeNode == null){this.appendChild(targetNode);}else{this.insertBefore(targetNode, beforeNode);}}

eg:若HTML代码如下所示

    <div><p></P><b></b><i></i></div>

若要在后插入标签,先获取父节点和参考节点;然后创建子节点strong。

    var div = document.getElementsByTagName('div')[0];var b = doucment.getElementsByTagName('b')[0];var strong = document.createElement('strong');div.insertAfter(strong, b);console.log(div);

控制台输出如下

    <div><p></P><b></b><strong></strong><i></i></div>

JS 封装inserAfter()方法相关推荐

  1. js 封装ajax方法吗,原生JS封装ajax方法

    jquery框架的ajax方法固然好用,但是假如某天我们的项目不能引入jquery或项目需求很简单,没有很多交互功能,只需要ajax,这时引入jquery库会造成资源浪费,也会显得页面臃肿.这时我们就 ...

  2. 用原生js封装get方法

    get方法的封装 首先我们看一下用原生js来发送请求的步骤: 1.创建请求对象 .var xhr=new XMLHttpRequest(); 2.创建open方法确认请求方式和地址 xhr.open( ...

  3. 原生JS封装ajax方法

    http://blog.sucaijiayuan.com/article/89 jquery框架的ajax方法固然好用,但是假如某天我们的项目不能引入jquery或项目需求很简单,没有很多交互功能,只 ...

  4. d3.js 封装一个方法更新柱状图,运用数据模板

    <script>var width = 400;var height = 400;//创建画布var svg = d3.select('body').append('svg').attr( ...

  5. 原生js时间格式化方法封装

    原生js时间格式化方法封装 创建formatDate函数,传入date(时间)和format(格式)两个参数,简单判断format返回相应格式的时间 注意:getMonth()方法获取到的月份会比实际 ...

  6. H5 js 处理localstorage方法封装

    李说: (已验证,可以直接用于开发中.) 在移动端开发中,我们未来将一根页面的数据带到另外一个页面中,需要将数据临时存放到缓存中,这时我们就用到了localstorage,相当于pc端的cookie和 ...

  7. 小程序promise封装post请求_微信小程序 es6-promise.js封装请求与处理异步进程

    微信小程序 es6-promise.js封装请求与处理异步进程 下载es6-promise.js置于根目录下的libs文件夹下: 在根目录utils文件夹下新建httpsPromisify.js,即定 ...

  8. 原生JS封装Ajax插件(同域jsonp跨域)

    2019独角兽企业重金招聘Python工程师标准>>> 抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢? 最近都在做原生JS熟悉的练习... 用原生Js封装了一个Ajax ...

  9. 原生Js封装的弹出框-弹出窗口-页面居中-多状态可选

    实现了一下功能: 1.title可自定义 可拖拽 2.width height可以自定义 3.背景遮罩和透明度可以自定义 4.可以自己编辑弹出框里的html 5.确定 取消按钮可选 调用方法: 1 P ...

最新文章

  1. 预测概率是什么?ROC曲线是什么?PR曲线是什么?ROC曲线和PR曲线使用场景差异?
  2. atitit.loading的设计与实现控件选型attilax 总结
  3. 吗 支持windows_M1能否原生支持Windows 苹果把问题抛给了微软
  4. 作者:李文静,山东农业信息中心助理农经师。
  5. java queue 清空_java swing清除事件队列
  6. 客户端无法连接到远程计算机。可能没有启用远程连接
  7. [投稿]一个频域语音降噪算法实现及改进方法
  8. pdf转txt出现句子异常中断,如何连接被切断的字符串
  9. 简单调用exe的方法
  10. php 调用dll静态库,vue-cli 2.x 项目优化之引入本地静态库文件
  11. 喜讯 | 大势智慧获得全球软件领域最高权威CMMI5认证
  12. C++搭建集群聊天室(二):安装muduo网络库
  13. 计算机中的各种字符编码
  14. y53拆机视频教程_戴尔笔记本P35G拆机全过程图解
  15. 图像处理中的数学原理归类
  16. 海南大学考研经验之(考研英语)
  17. android 的一些编译问题
  18. 解决MySQL 8.x以上版本安装中出现staring the server错误
  19. 电影周周看——适合新手学习的微信小程序
  20. 凡事逐步积累万丈高楼平地起事情的必然趋势

热门文章

  1. 交叉编译飞思卡尔imx6烧写工具MFGtools脚本中的sfdisk小软件
  2. 全景图(PanoramaGL)
  3. “五高一大”的SuperMap分布式GIS技术体系
  4. 模型的显存和参数量计算
  5. [ExtJS] 一文搞懂 apply 使用
  6. 电机控制--FOC的优势
  7. Python基础--range()和np.arrange()的区别与联系
  8. 陈冠希翻车都十年了,还有人在疯狂偷窥你的照片
  9. 什么是专家系统?专家系统的一般结构是什么?
  10. Codefroces 32C (简单模拟+数学)