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 相关文章推荐
分享20多个很棒的jQuery 文件上传插件或教程
Sep 04 Javascript
防止浏览器记住用户名及密码的简单实用方法
Apr 22 Javascript
document.compatMode的CSS1compat使用介绍
Apr 03 Javascript
超精准的javascript验证身份证号的具体实现方法
Nov 18 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 Javascript
使用express+multer实现node中的图片上传功能
Feb 02 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
vue实现element-ui对话框可拖拽功能
Aug 17 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
Sep 16 Javascript
Vue 子组件与数据传递问题及注意事项
Jul 11 Javascript
ionic+html5+API实现双击返回键退出应用
Sep 17 Javascript
keep-alive保持组件状态的方法
Dec 02 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+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
基于vue+canvas的excel-like组件实例详解
2017/11/28 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
Python使用OpenCV进行标定
2018/05/08 Python
python移位运算的实现
2019/07/15 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
人事主管的岗位职责
2013/11/16 职场文书
展会邀请函范文
2014/01/26 职场文书
初中语文教学反思
2014/02/02 职场文书
大学生活动策划方案
2014/02/10 职场文书
家长会标语
2014/06/24 职场文书
新闻学专业求职信
2014/07/28 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python
vue判断按钮是否可以点击
2022/04/09 Vue.js
Python面试不修改数组找出重复的数字
2022/05/20 Python
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS