这几天看书看到这几个属性做几个笔记

parentNode:顾名思义,就是获取某元素的父元素等同于jq的parent().

*注意一下,在调用parentNode 方法的时候 调用的对象必须是用ID 或是精确地获取的对象(要么getElementById 要么 ByTagName然后加上获取对象的下标[index]),不然会出现undefined 的错误

lastChild:获取最后一个子元素.

appendChild:在某元素内最后面添加一个子元素.

insertBefore:在某元素外的 前面添加一个元素. 此函数有两个参数insertBefore(newelem,targetelem),newelem是要插入的元素,targetelem是与newelem相对的

元素,调用此方法必须用 targetelem的父元素调用 即targetelem.parentNode

写法:targetelem.parentNode.insertBefore(newelem,targetelem);

就像下面这样写

       var h1ByTagName = document.getElementsByTagName('h1');
var h1ById = document.getElementById('h1');
       console.log(h1ByTagName[0].parentNode);
console.log(h1ById[0].parentNode);

nextSibling:获取某元素的下一个兄弟元素.

关于添加元素这里就有一个疑问了 既然有insertBefore 那么肯定有insertAfter 吧?但毕竟这是js 并不是jq 所以一切并没有那么完美

所以既然没有我们就造出来呗!

先上一个js 代码

function insertAfter(newelem,targetelem){

   var parent = targetelem.parentNode;//获取目标元素的父元素
if (parent.lastChild == targetelem) {
parent.appendChild(newelem);
} else {
parent.insertBefore(newelem,targetelem.nextSibling);
} }

代码是怎么一回事呢分析一下

首先这个方法有两个参数 newelem 和 targetelem

newelem 是你想插入的元素 而 targetelem 是你插入新元素的对照物

这个方法的意义就在于 你要把newelem插入到targetelem的后面,但是要实现还谈何容易所以还要写一下判断:

1.获取targetelem 的父元素 (用到了parentNode 方法)并且储存在变量parent 里面

2.对父元素进行判断,如果targetelem是它的父元素的最后一个子元素 那么它的父元素直接调用 appendChild 方法 将newelem插入到最后

3.如果不是的话 parent调用insertBefore 将 newelem 插入到 targetelem 的下一级同辈元素的前面

大功告成~~

【笔记】js parentsNode,lastChild,appendChild,insertBefore,nextSibling的意义及运用的更多相关文章

  1. 前端学习:学习笔记(JS部分)

    前端学习:学习笔记(JS部分) 前端学习:JS学习总结(图解)    JS的简介 JS基本语法 JS内置对象 JS的函数 JS的事件 JS的BOM JS的DOM JS的简介 新建步骤 <body ...

  2. 读书笔记 - js高级程序设计 - 第十章 DOM

      文档元素 是文档的最外层元素,在Html页面中,文档元素始终都是<html>元素 在xml中,任何元素都可以是文档元素 Node类型 Node.ELEMENT_NODE 元素 Node ...

  3. JQuery之append和appendTo的区别,还有js中的appendChild用法

    JQuery之append和appendTo的区别 append()前面是要选择的对象,后面是要在对象内插入的元素内容 appendTo()前面是要插入的元素内容且为Jquery对象,而后面是要选择的 ...

  4. js拾遗:appendChild 添加移动节点

    原文:js拾遗:appendChild 添加移动节点 写js一年多了,一直以为自己很牛逼,开始写各种博文分享,昨天写了一篇<浅谈 IE下innerHTML导致的问题>在看了下面的评论,我才 ...

  5. amazeui学习笔记--js插件(UI增强)--警告框Alert

    amazeui学习笔记--js插件(UI增强)--警告框Alert 一.总结 1.警告框基本样式:用am-alert声明div容器, <div class="am-alert" ...

  6. amazeui学习笔记--js插件(UI增强4)--下拉组件Dropdown

    amazeui学习笔记--js插件(UI增强4)--下拉组件Dropdown 一.总结 1.am-dropdown(及其孩子):控制下拉列表的样式 2.data-am-dropdown(及其孩子):控 ...

  7. amazeui学习笔记--js插件(UI增强3)--折叠面板Collapse

    amazeui学习笔记--js插件(UI增强3)--折叠面板Collapse 一.总结 注意点: 1.data-am-collapse:这个东西就是展开折叠事件 2.am-collapse(包括其下属 ...

  8. amazeui学习笔记--js插件(UI增强2)--按钮交互Button

    amazeui学习笔记--js插件(UI增强2)--按钮交互Button 一.总结 1.按钮loading状态: <button type="button" class=&q ...

  9. 读书笔记 - js高级程序设计 - 第十五章 使用Canvas绘图

    读书笔记 - js高级程序设计 - 第十三章 事件   canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好   有时候即使浏览器支持,操作系统如果缺缺 ...

随机推荐

  1. PHP静态化

    一.判断大型网站的标准 1.pv值(page views)网站浏览量: 概念:一个网站,所有的页面,在一天24小时内,被访问的总量,达到千万级别,或者几百万以上. 2.uv值(unique visit ...

  2. 2016huasacm暑假集训训练四 递推_A

    题目链接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/A 这题主要考的就是就是一个排列公式,但是不能用阶乘的公式,    用这个公式不易超 ...

  3. PHP AJAX JSONP实现跨域请求使用实例

    在之前我写过“php返回json数据简单实例”,“php返回json数据中文显示的问题”和“在PHP语言中使用JSON和将json还原成数组”.有兴趣的童鞋可以看看 今天我写的是PHP AJAX JS ...

  4. spring的显示装配bean(1)------通过XML文件装配

    1:spring环境的简单搭建 (1)导入spring相关的jar包. 2:准备要进行装配的Java类 这里给出两个举例类 (1) (2) 3:配置XML文件 (1)在配置文件的顶部声明多个XML模式 ...

  5. 微软的HLSL Shader Model 6.0 compiler要转向LLVM了,开源的节奏. Apple/Khronos都有各自计划

    So, Microsoft is making an opensource HLSL-to-almost-LLVM compiler, and Khronos is making an opensou ...

  6. python学习道路(day11note)(协程,同步与异步的性能区别,url爬网页,select,RabbitMq)

    1.协程 #协程 又称微线程 是一种用户的轻量级线程 程序级别代码控制 就不用加机器 #不同函数 = 不同任务 A函数切到B函数没有进行cpu级别的切换,而是程序级别的切换就是协程 yelied #单 ...

  7. bootstrap 部分css样式

    clip: rect(0, 0, 0, 0);剪裁绝对定位元素.outline: 0; cursor: not-allowed;

  8. 试解析Tomcat运行原理(一)--- socket通讯

    关于这篇文章也确实筹划了很久,今天决定开篇写第一篇,说起tomcat首先很容易联想到IIS,因为我最开始使用的就是.net技术,我第一次使用asp写学生成绩管理系统后,很茫然如何让别人都能看到或者说使 ...

  9. isKindOfClass和isMemberOfClass的区别

    isKindOfClass和isMemberOfClass的区别 isKindOfClass和isMemberOfClass 都是NSObject的比较Class的方法 但两个有很大区别: isKin ...

  10. 理解会话Session