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 相关文章推荐
jquery 问答知识整理
Feb 11 Javascript
return false,对阻止事件默认动作的一些测试代码
Nov 17 Javascript
读jQuery之四(优雅的迭代)
Jun 20 Javascript
JavaScript 的继承
Oct 01 Javascript
Jquery中offset()和position()的区别分析
Feb 05 Javascript
深入理解javascript的getTime()方法
Feb 16 Javascript
深入理解JavaScript 参数按值传递
May 24 Javascript
JS实现多张图片预览同步上传功能
Jun 23 Javascript
Angular实现图片裁剪工具ngImgCrop实践
Aug 17 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
Oct 11 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
Nov 07 Javascript
jQuery实现tab栏切换效果
Dec 22 jQuery
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/04/01 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
php使用环形链表解决约瑟夫问题完整示例
2018/08/07 PHP
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
nodejs中exports与module.exports的区别详细介绍
2013/01/14 NodeJs
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
学习Javascript闭包(Closure)知识
2016/08/07 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
Vant picker 多级联动操作
2020/11/02 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
python实现斐波那契递归函数的方法
2014/09/08 Python
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
促销活动策划方案
2014/01/12 职场文书
创建文明城市标语
2014/06/16 职场文书
反对邪教标语
2014/06/30 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
爱情保证书
2015/01/17 职场文书
高中体育课教学反思
2016/02/16 职场文书
Redis如何实现分布式锁
2021/08/23 Redis
python超详细实现完整学生成绩管理系统
2022/03/17 Python
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL