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 相关文章推荐
判断JS对象是否拥有某种属性的两种方式
Dec 02 Javascript
用于deeplink的js方法(判断手机是否安装app)
Apr 02 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
Aug 04 Javascript
JS实现具备延时功能的滑动门菜单效果
Sep 17 Javascript
在 Express 中使用模板引擎
Dec 10 Javascript
Flow之一个新的Javascript静态类型检查器
Dec 21 Javascript
移动端基础事件总结与应用
Jan 12 Javascript
详解JS异步加载的三种方式
Mar 07 Javascript
使用layui的layer组件做弹出层的例子
Sep 27 Javascript
如何用JS模拟实现数组的map方法
Jul 30 Javascript
Node.js fs模块原理及常见用途
Oct 22 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
Dec 14 Vue.js
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
Discuz 模板引擎的封装类代码
2008/07/18 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
php中使用sftp教程
2015/03/30 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
限制文本字节数js代码
2007/03/06 Javascript
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
如何利用Fabric自动化你的任务
2016/10/20 Python
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
日期和时间问题
2015/01/04 面试题
员工培训邀请函
2014/01/11 职场文书
项目投资意向书
2014/04/01 职场文书
《火烧云》教学反思
2014/04/12 职场文书
公司节能减排倡议书
2014/05/14 职场文书
创意婚礼策划方案
2014/05/18 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
政府会议通知范文
2015/04/15 职场文书
教师聘用意向书
2015/05/11 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL