jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项


Posted in Javascript onApril 04, 2020

JQuery中after、append、insertAfter、prepend的简单用法

简单代码:

<html>
<head>
<title>after、append、insertAfter用法—三水点靠木</title>
</head>
<body>
<div>
<p>段落1</p>
</div>
</body>
</html>

下面的内容我们一般都是在chrome浏览器中测试这样比较容易看到效果

测试代码

<!DOCTYPE html>
<html>
<head>
<title>after、append、insertAfter用法</title>
<script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<div>
<p>段落1</p>
</div>
</body>
</html>

1、after:在选定元素之后插入指定的内容,该内容可以包含HTML标签。

使用after方法向div之后插入代码:

$("div").after("<p>段落2</p>");

运行之后的代码结构为:

jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项

偷偷的告诉你三水点靠木的技术测试代码都是用的这个方法,简单而直观。

由此可知:使用after方法追加内容,是在选定的元素外部追加,也就是跳出选定元素在选定元素之后追加。

2、append:在选定元素的结尾插入指定内容,该内容也可以包含HTML标签。

使用append方法向div之后插入代码:

$("div").append("<p>段落2</p>");

运行之后的代码结构为:

jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项

因此:使用append方法追加内容,是在选定元素的内部追加,没有跳出选定元素,直接在选定元素的尾部追加内容。

3、insertAfter:在被选元素之后插入指定内容或已有元素,该内容可以是HTML标签,也可以是选择器表达式

HTML标签:

使用insertAfter方法向div之后插入代码:

$("<p>段落2</p>").insertAfter("div");

运行之后的结构为:

jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项

它的结构跟after的结构相同,也是在选定的元素外部追加内容,跳出选定元素之后追加。

4、选择器表达式:这种情况是在页面中存在要插入的元素。

简答的代码结构:

<div> 
 <h1>这是一个标题1</h1> 
 <h1>这是一个标题2</h1> 
 <h1>这是一个标题3</h1> 
</div> 
<p>这是一个段落。</p> 
<p>这是另一个段落。</p>

使用insertAfter方法向<div>之后插入代码:

$("h1").insertAfter("div");

运行之后的代码结构为:

jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项

下面脚本.之家小编来给大家对比一下

代码执行之前

jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项

代码执行以后

jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项

有没有发现div的闭合跑到最上面了,然后

再使用insertAfter方法向<p>之后插入代码:

$("h1").insertAfter("p");

运行之后的代码结构为:

jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项

jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项

由上面的两个例子可以看出:使用insertAfter方法插入已有元素,已有元素会被从当前位置移走,然后被添加到选定的元素之后。有点类似于:先复制一份已有元素,然后在页面上删除已有元素,再在每一个选定元素之后粘贴一份复制的已有元素。

所有基于这个原理,我们看一下基于jquery的文章中所有图片width大小的代码

$('#content').find('img').each(function(){
 var img = this;
 if (img.width > 600) {
  img.style.width = "600px";
  img.style.height = "auto";
  //$(img).removeAttr('height');
  var aTag = document.createElement('a');
  aTag.href = img.src;
			aTag.target="_blank";
  $(aTag).addClass('bPic')
  .insertAfter(img).append(img)
  .lightBox(options);
 }
 });

是不是感觉很酷呢

jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项

就是为较大的图片加上一个a链接,在新窗口打开。这样主要是方便用户查看较大的图片。

5、prepend:在选定元素的开头插入指定内容,该内容可以包含HTML标签。

使用prepend方法向<div>之后插入代码:

$("div").prepend("<p>段落2</p>");

运行之后的代码结构为:

jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项

其结构跟append的结构相同,也是直接在选定元素的内部追加,不需要跳出选定元素,不同的是append是在选定元素的尾部追加,prepend是在选定元素的开头追加。

这里列的是针对初学jQuery者来说容易搞不懂的部分,我在这里把这些方法列了个清单,希望大家能看的懂。

如下:

方法 源包装集/字串 目标包装集体 特性描述
A.append(B) B A 若目标包装集只匹配一个元素,则源(也包括同源包装集匹配的所有元素)将被移动到目标位置;若目标包装集包含多个元素,则源将保留在原来的位置,但同时复制一份相同的副本到目标位置。 由此,若目标只匹配一个元素时,使用前述方法后源将被删除。
B.appendTo(A)
A.prepend(B)
B.prependTo(A)
A.before(B)
B.insertBefore(A)
A.after(B)
B.insertAfter(A)

举例说明:在上图中,A.append(B)表示把B添加到与A匹配的所有元素的现有内容后面,因此B是源,A是目标包装集。

Javascript 相关文章推荐
菜单效果
Oct 14 Javascript
caller和callee的区别介绍及演示结果
Mar 10 Javascript
javascript校验价格合法性实例(必须输入2位小数)
May 05 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
Jan 25 Javascript
浅谈react.js 之 批量添加与删除功能
Apr 17 Javascript
解决layui中的form表单与button的点击事件冲突问题
Aug 15 Javascript
如何从头实现一个node.js的koa框架
Jun 17 Javascript
前端插件之Bootstrap Dual Listbox使用教程
Jul 23 Javascript
JS对日期操作封装代码实例
Nov 08 Javascript
javascript中的with语句学习笔记及用法
Feb 17 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
Sep 21 Javascript
详细介绍Next.js脚手架完整搭建封装
Apr 26 Javascript
基于Jquery的标签智能验证实现代码
Dec 27 #Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
Dec 27 #Javascript
在JavaScript中获取请求的URL参数[正则]
Dec 25 #Javascript
extjs之去除s.gif的影响
Dec 25 #Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
Dec 25 #Javascript
javascript与webservice的通信实现代码
Dec 25 #Javascript
基于node.js的快速开发透明代理
Dec 25 #Javascript
You might like
php 显示指定路径下的图片
2009/10/29 PHP
Symfony2针对输入时间进行查询的方法分析
2017/06/28 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
18个非常棒的jQuery代码片段
2015/11/02 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
Python字符转换
2008/09/06 Python
学习python处理python编码问题
2011/03/13 Python
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
Python fileinput模块使用实例
2015/05/28 Python
浅谈编码,解码,乱码的问题
2016/12/30 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
2020/03/02 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
Python绘制组合图的示例
2020/09/18 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
python绘制分布折线图的示例
2020/09/24 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
HTML5如何实现元素拖拽
2016/03/11 HTML / CSS
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
企业开业庆典答谢词
2015/01/20 职场文书
葬礼主持词
2015/07/02 职场文书