JQuery插入DOM节点的方法


Posted in Javascript onJune 11, 2015

本文实例讲述了JQuery插入DOM节点的方法。分享给大家供大家参考。具体分析如下:

动态创建HTML元素并没有实际用处,还需要将新创建的元素插入文档中。将新创建的节点插入文档最简单的办法是,让它成为这个文档的某个节点的子节点。前面使用了一个插入节点的方法append(),它会在元素内部追加新创建的内容。

将新创建的节点插入某个文档的方法并非只有一种,在JQuery中还提供了其他儿种插入节点的方法,如下表所示。读者可以根据实际需求灵活地做出多种选择。

HTML DOM结构如下:

<p class="nm_p" title="欢迎访问三水点靠木" >欢迎访问三水点靠木</p>
<ul class="nm_ul">
  <li title='PHP编程'>简单易懂的PHP编程</li>
  <li title='JavaScript编程'>简单易懂的JavaScript编程</li>
  <li title='JQuery编程'>简单易懂的JQuery编程</li>
</ul>

append()

向每个匹配的元素内部追加内容:

HTML代码:

<p>我想说:</p>

jQuery代码:
$("p").append("<b>你好</b>");

结果:
<p>我想说:<b>你好</b></p>

appendTo()

将所有匹配的元素追加到指定的元素中。实际上,使用该方法是颠倒了常规的$(A).append(B)的操作,即不是将B追加到A中,而是将A追加到B中:

HTML代码:

<p>我想说:</p>

jQuer代码:
$("<b>你好</b>").appendTo("p");

结果:
<p>我想说:<b>你好</b></p>

prepend()

向每个匹配的元素内部前置内容:

HTML代码:

<p>我想说:</p>

jQuer代码:
$("p").prepend<"<b>你好</b>");

结果:
<p><b>你好</b>我想说:</p>

prependTo()

将所有匹配的元素前置到指定的元素中。实际上,使用该方法是颠倒了常规的$(A).prepend(B)的操作,即不是将B前置到A中,而是将A前置到B中:

HTML代码:

<p>我想说:</p>

jQuer代码:
$("<b>你好</b>").prependTo("p");

结果:
<p><b>你好</b>我想说:</p>

after()

在每个匹配的元索之后插入内容:

HTML代码:

<p>我想说:</p>

jQuer代码:
$("p").after("<b>你好</b>");

结果:
<p>我想说:</p><b>你好</b>

insertAfler()

将所有匹配的元素插入到指定元素的后面。实际上,使用该方法是颠倒了常规的$(A).after(B)的操作,即不是将B插入到A后面,而是将A插入到B后面:

HTML代码:

<p>我想说:</p>

jQuer代码:
$("<b>你好</b>").insertAfter("p");

结果:
<p>我想说:</p><b>你好</b>

before()

在每个匹配的元素之前插入内容:

HTML代码:

<p>我想说:</p>

jQuer代码:
$("p").before("<b>你好</b>");

结果:
<b>你好</b><p>我想说:</p>

insertBefore()

将所有匹配的元素捅入到指定的元素的前面。实际上,使用该方法是颠倒了常规的$(A).before(B)的操作,即不是将B插入到A前面,而是将A插入到B前面:

HTML代码:

<p>我想说:</p>

jQuer代码:
$("<b>你好</b>").insertBefore("p");

结果:
<b>你好</b><p>我想说:</p>

这些插入节点的方法不仅能将新创建的DOM元素插入到文档中,也能对原有的DOM元素进行移动。例如利用它们创建新元素并对其进行插入操作:

$(function(){
  var $li_1 = $("<li title='新增节点:数据结构'>新增节点:数据结构</li>"); // 创建第一个<li>元素
  var $li_2 = $("<li title='新增节点:设计模式'>新增节点:设计模式</li>"); // 创建第二个<li>元素
  var $li_3 = $("<li title='新增节点:计算机算法'>新增节点:计算机算法</li>"); // 创建第三个<li>元素
  var $parent = $(".nm_ul"); // 获取<ul>节点。<li>的父节点
  var $two_li = $(".nm_ul li:eq(1)"); // 获取<ul>节点中第二个<li>元素节点
  $("#btn_1").click(function(){
    $parent.append($li_1); // 添加到<ul>节点中,使之能在网页中显示
  });
  $("#btn_2").click(function(){
    // 可以采取链式写法:$parent.append($li_1).append($li_2);
    $parent.append($li_2);   
  });
  $("#btn_3").click(function(){
    // insertAfter方法将创建的第三个<li>元素元素插入到获取的<li>之后
    $li_3.insertAfter($two_li); 
  });
});

也利用它们对原有的DOM元素进行移动:

$(function(){
  var $one_li = $("ul li:eq(1)"); // 获取<ul>节点中第二个<li>元素节点
  var $two_li = $("ul li:eq(2)"); // 获取<ul>节点中第三个<li>元素节点
  $two_li.insertBefore($one_li); //移动节点
});

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
[原创]图片分页查看
Aug 28 Javascript
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
Sep 15 Javascript
javascript中Object使用详解
Jan 26 Javascript
jQuery制作简单柱状图实例
Jan 28 Javascript
javascript实现根据3原色制作颜色选择器的方法
Jul 17 Javascript
微信小程序开发探究
Dec 27 Javascript
使用Angular缓存父页面数据的方法
Jan 03 Javascript
JS原型继承四步曲及原型继承图一览
Nov 28 Javascript
vue路由跳转传参数的方法
May 06 Javascript
Vue中的transition封装组件的实现方法
Aug 13 Javascript
javascript实现切割轮播效果
Nov 28 Javascript
js实现左右轮播图
Jan 09 Javascript
JQuery创建DOM节点的方法
Jun 11 #Javascript
JQuery查找DOM节点的方法
Jun 11 #Javascript
JQuery鼠标移到小图显示大图效果的方法
Jun 10 #Javascript
JQuery实现超链接鼠标提示效果的方法
Jun 10 #Javascript
jquery序列化方法实例分析
Jun 10 #Javascript
jQuery实现dialog设置focus焦点的方法
Jun 10 #Javascript
jQuery替换textarea中换行的方法
Jun 10 #Javascript
You might like
php编写简单的文章发布程序
2015/06/18 PHP
php时间计算相关问题小结
2016/05/09 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
php实现简易计算器
2020/08/28 PHP
js 蒙版进度条(结合图片)
2010/03/10 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
DOM操作一些常用的属性汇总
2015/03/13 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
Python isinstance判断对象类型
2008/09/06 Python
详解Python编程中包的概念与管理
2015/10/16 Python
Python3.6正式版新特性预览
2016/12/15 Python
Python数据结构之图的应用示例
2018/05/11 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
Python 占位符的使用方法详解
2019/07/10 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
鼓励运动员的广播稿
2014/02/08 职场文书
交通安全标语
2014/06/06 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
2015年大学生实习评语
2015/03/25 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
MYSQL 表的全面总结
2021/11/11 MySQL