appendChild append insertBefore prepend
CreateTime--2017年11月2日16:57:59
Author:Marydon
appendChild()与append() insertBefore()与prepend()区别与联系
描述:
1.appendChild()是javascript在父节点最后面插入子节点的方法;
2.append()是jquery在父节点最后面插入子节点的方法;
3.insertBefore()在javascript中:在父节点最前面插入子节点,在jquery中:为指定节点前面插入兄弟节点;
4.prepend()是jquery在父节点最前面插入子节点的方法。
共性:
1.都是用来插入节点的,insertBefore在jquery的应用除外;
2.都是通过操作父节点来完成子节点的插入。
特性:
1.appendChild(tagElement);
tagElement 只能是标签dom对象
dom对象的获取方式:方法一,通过js动态创建标签元素(通常使用);方法二,使用js从页面获取dom对象。
举例:
HTML片段
<body>
<div id="test" style="display:none;"></div>
</body>
JAVASCRPT
//body标签添加一个子节点
// 方式一
var divElement = document.createElement('div');
divElement.innerHTML = "通过js创建dom对象的方式实现";
document.body.appendChild(divElement);
// 方式二
divElement = $('#test').clone()[0];
divElement.id = '';
divElement.style.display = 'block';
divElement.innerHTML = "通过js+jquery从页面获取dom对象的方式实现";
document.body.appendChild(divElement);
2.append(param)
param可以有三种表现形式:HTML片段字符串、文本、通过js创建或获取的dom对象
举例:
//body标签添加一个子节点
// 方式一
var divTagStr = '<div id="test">param为HTML片段字符串</div>'
$("body").append(divTagStr);
// 方式二
var textStr = "param为文本";
$("body").append(textStr);
// 方式三
var divElement = document.createElement('div');
divElement.innerHTML = "param为通过js创建的dom对象";
$("body").append(divElement);
3.insertBefore()
3.1 在javascript中的用法
parentElement.insertBefore(targetElement,positionElement);
targetElement:目标对象,将要插入的元素;
positionElement:插入位置对象,元素将被插入到该对象的前面。
注意:该方法必须通过父节点才能够调用(只能通过父节点来完成对子节点的拼接)。
举例:
HTML片段
<body>
<div><p id="duanluo">div中的段落标签p</p></div>
</body>
JAVASCRIPT
window.onload = function(){
//id="test"的标签添加一个子节点
var divElement = document.createElement('div');
// appendChild()
divElement.innerHTML = "展示insertBefore()方法的用法";
var brotherElement = document.getElementById("duanluo");
brotherElement.parentNode.insertBefore(divElement,brotherElement);
}
3.2 在jquery中的用法
$(targetElement).insertBefore(positionElement);
targetElement:目标对象,将要插入的元素;
positionElement:插入位置对象,元素将被插入到该对象的前面
注意:该方法必须通过即将插入的对象进行调用
举例:
window.onload = function(){
var pElement = document.createElement('p');
pElement.innerHTML = "指定节点前插入兄弟节点";
$(pElement).insertBefore('#duanluo');
}
4.prepend(param)
param可以有三种表现形式:HTML片段字符串、文本、通过js创建或获取的dom对象
情形一:
通过父节点添加子节点
1.在父节点最后面添加子节点;
HTML片段
<body>
<div id="test"><p>div中的段落标签p</p></div>
</body>
JAVASCRIPT
window.onload = function(){
/* id="test"的标签添加一个子节点 */
// appendChild()
var divElement = document.createElement('div');
divElement.innerHTML = "使用js的appendChild()方法添加子节点";
document.getElementById("test").appendChild(divElement);
// append()
var divTag = "<div>使用jquery的append()方法添加子节点</div>";
$("#test").append(divTag);
}
2.在父节点最前面添加子节点。
HTML片段
<div id="test"><p>测试insertBefore()</p><p>div中的段落标签p</p></div>
JAVASCRIPT
window.onload = function(){
/* id="test"的标签最前面添加一个子节点 */
// insertBefore()
var h1Element = document.createElement('h1');
h1Element.innerHTML = "使用js的insertBefore()方法添加子节点";
var parentElement = document.getElementById("test");
var firstElement = parentElement.firstChild;
parentElement.insertBefore(h1Element,firstElement);
// prepend()
var h1Tag = "<h1>使用jquery的prepend()方法添加子节点</h1>";
$("#test").prepend(h1Tag);
}
3.使用jquery实现的另外两种方式
window.onload = function(){
/* 使用jquery的appendTo()添加子节点 */
var divTag = "<div>使用jquery的appendTo()方法添加子节点</div>";
$(divTag).appendTo("#test");
/* 使用jquery的prependTo()添加子节点 */
var h1Tag = "<h1>使用jquery的prependTo()方法添加子节点</h1>";
$(h1Tag).prependTo("#test");
}
3.1 append() prpend() appendTo() prpendTo()用法简述
append()和prpend()都是通过选取确定插入位置的对象来完成插入操作;
语法:$(positionElement).append(targetElement)和$(positionElement).prepend(targetElement);
appendTo()和prpendTo()都是通过选取将要插入的对象来指定插入操作。
语法:$(targetElement).appendTo(positionElement)和$(targetElement).prpendTo(positionElement);
小结:
在父节点最后面添加子节点:
javascirpt使用appendChild(),jquery使用append()或appendTo()
在父节点最前面添加子节点
javascirpt使用insertBefore(),jquery使用prpend()或prpendTo()
情形二:
1.在指定子节点后面添加兄弟节点;
说明:javascript无法实现,jquery可以实现
jquery实现:调用insertAfter()或after()实现
<div id="test"><p id="duanluo">测试jquery指定节点后插入兄弟节点方法实现</p><p>div中的段落标签p</p></div>
window.onload = function(){
var pTag = '<p>指定节点后插入兄弟节点</p>';
// 方法一
$(pTag).insertAfter('#duanluo');
// 方法二
$('#duanluo').after(pTag);
}
2.在指定子节点前面添加兄弟节点。
实现:
HTML片段
<div id="test"><p>测试insertBefore()</p><p id="duanluo">div中的段落标签p</p></div>
2.1 js实现:通过父节点添加兄弟节点(曲线救国)
window.onload = function(){
/* 指定位置添加一个兄弟节点 */
// insertBefore()
var pElement = document.createElement('p');
pElement.innerHTML = "指定节点前插入兄弟节点";
var parentElement = document.getElementById("test");
var brotherElement = document.getElementById("duanluo");
parentElement.insertBefore(pElement,brotherElement);
}
2.2 jquery实现:调用insertBefore()或before()方法实现
window.onload = function(){
var pTag = '<p>指定节点前插入兄弟节点</p>';
// 方法一
$(pTag).insertBefore('#duanluo');
// 方法二
$('#duanluo').before(pTag);
}
2.3 insertAfter() insertBefore() after() before()用法简述
insertAfter()和insertBefore()都是通过选取将要插入的对象来指定插入操作;
语法:$(targetElement).insertAfter(positionElement)和$(targetElement).insertBefore(positionElement);
after()和before()都是通过选取确定插入位置的对象来完成插入操作。
语法:$(positionElement).after(targetElement)和$(positionElement).before(targetElement);
appendChild append insertBefore prepend的更多相关文章
- 关于appendChild和insertBefore appendTo()和append
appendChild和insertBefore(原生js) appendTo()和append(jquery)
- (转)appendChild()、insertBefore()是移动element节点!
原文地址 appendChild().insertBefore()是移动element节点,看书的时候注意过,也可以做一个简单的例子测试一下: <div id="div1"& ...
- js便签笔记(3)——切记:appendChild()、insertBefore()是移动element节点!
appendChild().insertBefore()是移动element节点,看书的时候注意过,也可以做一个简单的例子测试一下: <div id="div1"> & ...
- jquery中append跟prepend的用法
jquery中append和prepend的用法 append 是插入到元素中,并放到元素内的最后面prepend 是插入到元素中,并放到元素内的最前面例$("body"). ...
- js插入节点appendChild和insertBefore
首先 从定义来理解 这两个方法: appendChild() 方法:可向节点的子节点列表的末尾添加新的子节点.语法:appendChild(newchild) insertBefore() 方法:可在 ...
- 添加新内容的四个 jQuery 方法:append,prepend,after,before
添加新内容的四个 jQuery 方法区别如下: append() - 在被选元素(里面)的结尾插入内容prepend() - 在被选元素(里面)的开头插入内容 //jQuery append() 方法 ...
- JS(JavaScript)插入节点的方法appendChild与insertBefore
首先 从定义来理解 这两个方法: appendChild() 方法:可向节点的子节点列表的末尾添加新的子节点.语法:appendChild(newchild) insertBefore() 方法:可在 ...
- jQuery中append()、prepend()与after()、before()的区别
转载 未曾见海 https://www.cnblogs.com/afei-qwerty/p/6682963.html 在jQuery中,添加元素有append(),prepend() 和 after ...
- jQuery中的append()和prepend(),after()和before()的差别
jQuery中的append()和preappend(),after()和before()的差别 append()和prepend() 如果 <div class='a'> //<- ...
随机推荐
- Linux前后台进程切换
(1).Linux前台进程与后台进程的区别 前台进程:是在终端中运行的命令,那么该终端就为进程的控制终端,一旦这个终端关闭,这个进程也随之消失. 后台进程:也叫守护进程(Daemon),是运行在后台的 ...
- C++-STL-(map用法)
http://blog.csdn.net/sunshinewave/article/details/8067862
- 【BZOJ 1052】 1052: [HAOI2007]覆盖问题 (乱搞)
1052: [HAOI2007]覆盖问题 Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄 膜把这些小树遮盖起来,经过一番长久的 ...
- 【BZOJ 1027】 (凸包+floyd求最小环)
[题意] 某公司加工一种由铁.铝.锡组成的合金.他们的工作很简单.首先进口一些铁铝锡合金原材料,不同种类的原材料中铁铝锡的比重不同.然后,将每种原材料取出一定量,经过融解.混合,得到新的合金.新的合金 ...
- 【LA 3641】 Leonardo's Notebook (置换群)
[题意] 给出26个大写字母组成 字符串B问是否存在一个置换A使得A^2 = B [分析] 置换前面已经说了,做了这题之后有了更深的了解. 再说说置换群. 首先是群. 置换群的元素是置换,运算时是 ...
- 【Vijos 1607】【NOI 2009】植物大战僵尸
https://vijos.org/p/1607 vijos界面好漂亮O(∩_∩)O~~ 对于一个植物x,和一个它保护的植物y,连一条边<x,y>表示x保护y,对于每个植物再向它左方的植物 ...
- 【BZOJ 3924】【ZJOI 2015】幻想乡战略游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=3924 gty的测试题,不会动态点分治而且看不出来链剖做法而且暴力打残所以这道题喜闻乐见的爆零了qwq ...
- Linux-Oracle 安装配置步骤
一.打开 VMware 安装 VMware 解压 ORACLER11.2_redhat.rar 到 D:\...\machine\oracle-linux 打开 VMware, 选择 打开虚拟机 找到 ...
- ccpc秦皇岛部分题解
A. 题意:就是有一个大桌子,环绕有顺势站1~m共m个座位,n个选手坐在部分位置上.然后如果有一个人a了一道题,却没有立刻发气球给他,他产生怒气值是发气球给他的时间减去a题时间.现在有一个机器人顺时针 ...
- ie8下使用bootstrap不能显示icon的图标
写在前面: 在做项目的时候,就一直使用的火狐浏览器是开发的,但是放到了ie8上运行的时候,就弄得class样式为icon的图标无法显示出来.所以就要改改改!!! 这里本项目中的代码: <smal ...