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 相关文章推荐
Jquery 学习笔记(一)
Oct 13 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
Jul 06 Javascript
Juqery Html(),append()等方法的Bug解决方法
Dec 13 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
May 11 Javascript
JQuery中extend使用介绍
Mar 13 Javascript
javascript引用类型指针的工作方式
Apr 13 Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
Jan 28 Javascript
vue项目中监听手机物理返回键的实现
Jan 18 Javascript
js实现飞机大战游戏
Aug 26 Javascript
JavaScript实现打字游戏
Feb 19 Javascript
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
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
php统计文章排行示例
2014/03/04 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
JQuery 浮动导航栏实现代码
2009/08/27 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
JavaScript如何实现元素全排列实例代码
2019/05/14 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
Python中的pprint折腾记
2015/01/21 Python
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
网络体系结构及协议的定义
2014/03/13 面试题
大学生在校学习的自我评价
2014/02/18 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
英语教师自荐信
2014/05/26 职场文书
企业宣传策划方案
2014/05/29 职场文书
经典导游欢迎词
2015/01/26 职场文书
青年教师个人总结
2015/02/11 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
电话营销开场白
2015/05/29 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
background-position百分比原理详解
2021/05/08 HTML / CSS