jquery 追加元素append、prepend、before、after用法与区别分析


Posted in Javascript onDecember 02, 2016

一、after()和before()方法的区别

    after()——其方法是将方法里面的参数添加到jquery对象后面去;
    如:A.after(B)的意思是将B放到A后面去;
    before()——其方法是将方法里面的参数添加到jquery对象前面去。
    如:A.before(B)的意思是将A放到B前面去; 
 
二、insertAfter()和insertBefore()的方法的区别

    其实是将元素对调位置;
    可以是页面上已有元素;也可以是动态添加进来的元素。
    如:A.insertAfter(B);即将A元素调换到B元素后面;
    如<span>CC</span><p>HELLO</p>使用$("span").insertAfter($("p"))后,就变为<p>HELLO</p><span>CC</span>了。两者位置调换了
 
三、append()和appendTo()方法的区别

    append()——其方法是将方法里面的参数添加到jquery对象中来;
    如:A.append(B)的意思是将B放到A中来,后面追加,A的子元素的最后一个位置;
    appendTo()——其方法是将jquery对象添加到appendTo指定的参数中去。
    如:A.appendTo(B)的意思是将A放到B中去,后面追加,B的子元素的最后一个位置;
 
四、prepend()和prependTo()方法的区别

    append()——其方法是将方法里面的参数添加到jquery对象中来;
    如:A.append(B)的意思是将B放到A中来,插入到A的子元素的第一个位置;
    appendTo()——其方法是将jquery对象添加到appendTo指定的参数中去。
    如:A.appendTo(B)的意思是将A放到B中去,插入到B的子元素的第一个位置;
 
例子

1、insert局部方法

/**
 * 在父级元素上操作DOM
 * @param {Object} parent  父级元素,可以是element,也可以是Yquery对象
 * @param {String} position 位置: beforebegin/afterbegin/beforeend/afterend
 * @param {*}   any   任何:string/text/object
 * @param {Number} index  序号,如果大于0则复制节点
 * @return {Undefined}
 * @version 1.0
 * 2013年12月2日17:08:26
 */
function _insert(parent, position, any, index) {
  if ($.isFunction(any)) {
    any = any.call(parent);
  }
  // 字符串
  if ($.isString(any)) {
    if (regTag.test(any)) {
      parent.insertAdjacentHTML(position, any);
    } else {
      parent.insertAdjacentText(position, any);
    }
  }
  // 数字
  else if ($.isNumber(any)) {
    parent.insertAdjacentText(position, any);
  }
  // 元素
  else if ($.isElement(any)) {
    parent.insertAdjacentElement(position, index > 0 ? any.cloneNode(!0) : any);
  }
  // Yquery
  else if (_isYquery(any)) {
    any.each(function() {
      _insert(parent, position, this);
    });
  }
}

2、append、prepend、before、after

$.fn = {
  /**
   * 追插
   * 将元素后插到当前元素(集合)内
   * @param {String/Element/Function} any
   * @return this
   * @version 1.0
   * 2013年12月29日1:44:15
   */
  append: function(any) {
    return this.each(function(index) {
      _insert(this, 'beforeend', any, index);
    });
  },
  /**
   * 补插
   * 将元素前插到当前元素(集合)内
   * @param {String/Element/Function} any
   * @return this
   * @version 1.0
   * 2013年12月29日1:44:15
   */
  prepend: function(any) {
    return this.each(function(index) {
      _insert(this, 'afterbegin', any, index);
    });
  },
  /**
   * 前插
   * 将元素前插到当前元素(集合)前
   * @param {String/Element/Function} any
   * @return this
   * @version 1.0
   * 2013年12月29日1:44:15
   */
  before: function(any) {
    return this.each(function(index) {
      _insert(this, 'beforebegin', any, index);
    });
  },
  /**
   * 后插
   * 将元素后插到当前元素(集合)后
   * @param {String/Element/Function} any
   * @return this
   * @version 1.0
   * 2013年12月29日1:44:15
   */
  after: function(any) {
    return this.each(function(index) {
      _insert(this, 'afterend', any, index);
    });
  }
};

3、prependTo、prependTo、insertBefore、insertAfter
这些带后缀的与上面的不同的是,返回的结果不一样。如:

$('#demo').append('<a/>');
// => 返回的是 $('#demo')
$('<a/>').appendTo($('#demo'));
// => 返回的是$('a');

因此两者的关系只是返回结果不一样,其他的都一样,可以这么解决:

_each({
  appendTo: 'append',
  prependTo: 'prepend',
  insertBefore: 'before',
  insertAfter: 'after'
}, function(key, val) {
  $.fn[key] = function(selector) {
    this.each(function() {
      $(selector)[val](this);
    });
    return this;
  };
});

jquery 追加元素的方法(append prepend after before 的区别)

append() 方法在被选元素的结尾插入内容。

prepend() 方法在被选元素的开头插入内容。

after() 方法在被选元素之后插入内容。

before() 方法在被选元素之前插入内容。

<script type="text/javascript" src="http://common.3water.com/jslib/jquery/jquery.min.js"></script>
<div class="testdiv">
  <ul>
    <li>第一个li标签</li>
  </ul>
</div>

<script>

  //append
  $('.testdiv ul').append('<li>append 插入的li</li>');
  //prepend
  $('.testdiv ul').prepend('<li>prepend 插入的li</li>');
  //after
  $('.testdiv ul').after('<li>after 插入的li</li>');
  //before
  $('.testdiv ul').before('<li>before 插入的li</li>');

</script>

效果图

jquery 追加元素append、prepend、before、after用法与区别分析

html结构图

jquery 追加元素append、prepend、before、after用法与区别分析

Javascript 相关文章推荐
url 编码 js url传参中文乱码解决方案
Apr 11 Javascript
Jquery中getJSON在asp.net中的使用说明
Mar 10 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
Feb 05 Javascript
js实现杯子倒水问题自动求解程序
Mar 25 Javascript
键盘KeyCode值列表汇总
Nov 26 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
js变形金刚文字特效代码分享
Aug 20 Javascript
jQuery插件实现静态HTML验证码校验
Nov 06 Javascript
JavaScript实现数据类型的相互转换
Mar 06 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
Apr 20 Javascript
vue集成chart.js的实现方法
Aug 20 Javascript
在nuxt中使用路由重定向的实例
Nov 06 Javascript
jquery实现图片列表鼠标移入微动
Dec 01 #Javascript
Vue.js组件tabs实现选项卡切换效果
Dec 01 #Javascript
IE8兼容Jquery.validate.js的问题
Dec 01 #Javascript
利用JQuery阻止事件冒泡
Dec 01 #Javascript
Vue.js第三天学习笔记(计算属性computed)
Dec 01 #Javascript
实例解析jQuery中如何取消后续执行内容
Dec 01 #Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
Dec 01 #Javascript
You might like
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
Phpbean路由转发的php代码
2008/01/10 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
vue实现图片上传功能
2020/05/28 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
python中dict使用方法详解
2019/07/17 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
中学门卫岗位职责
2013/12/26 职场文书
企事业单位求职者的自我评价
2013/12/28 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
会计学专业求职信
2014/07/17 职场文书
党员剖析材料范文
2014/09/30 职场文书
简历中自我评价范文
2015/03/11 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
Python绘制分类图的方法
2021/04/20 Python
MySQL系列之十二 备份与恢复
2021/07/02 MySQL