JQuery创建DOM节点的方法


Posted in Javascript onJune 11, 2015

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

用JQuery选择器能够快捷而轻松地查找到文档中的某个特定的元素节点,然后可以用attr()方法来获取元素的各种属性的值。但真正的DOM操作并非这么简单。在DOM操作中,常常需要动态创建HTML内容,使文档在浏览器里的呈现效果发生变化,并且达到各种各样的人机交互的目的。

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>

创建元素节点

例如要创建两个<li>元素节点,并且要把它们作为<ul>元素节点的子节点添加到DOM节点树上。完成这个任务需要两个步骤。

1. 创建两个<li>新元素。
2. 将这两个新元素插入文档中。

第1个步骤可以使用jQuery的工厂函数$()来完成,格式如下:

$(html);

$(html)方法会根据传入的HTML标记字符串,创建一个DOM对象,并将这个DOM对象包装成一个jQuery对象后返回。

首先创建两个<li>元素,jQuery代码如下:

var $li_1 = $("<li></li>"); // 创建第一个<li>元素
var $li_2 = $("<li></li>"); // 创建第二个<li>元素

然后将这两个新元素插入文档中,可以使用jQuery中的append()等方法。JQuery代码如下:

var $parent = $(".nm_ul"); // 获取<ul>节点。<li>的父节点
$parent.append($li_1); // 添加到<ul>节点中,使之能在网页中显示
$parent.append($li_2); // 可以采取链式写法:$parent.append($li_1).append($li_2);

动态创建的新元素节点不会被自动添加到文档中,而是需要使用其他方法将其插入文档中。当创建单个元素时,要注意闭合标签和使用标准的XHTML格式。例如创建一个<p>元素,可以用$("<p/>")或者$("<p></p>"),但不要使用$("<p>")或者大写的$("<P/>")。

创建文本节点

已经创建了两个<li>元素节点并把它们插入文档中了。此时需要为创建的元素节点添加文本内容。

JQuery代码如下:

var $li_1 = $("<li>新增节点:数据结构</li>"); // 创建第一个<li>元素
var $li_2 = $("<li>新增节点:设计模式</li>"); // 创建第二个<li>元素
var $parent = $(".nm_ul"); // 获取<ul>节点。<li>的父节点
$parent.append($li_1); // 添加到<ul>节点中,使之能在网页中显示
$parent.append($li_2); // 可以采取链式写法:$parent.append($li_1).append($li_2);

如以上代码所示,创建文本节点就是在创建元素节点时直接把文本内容写出来,然后使用append()等方法将它们添加到文档中就可以了。

无论$(html)中的HTML代码多么复杂,都要使用相同的方式来创建。例如$("<li><em>这是</em><b>一个</b><a href="#">复杂的组合</a></li>");

创建属性节点

创建属性节点与创建文本节点类似,也是直接在创建元素节点时一起创建。JQuery代码如下:

var $li_1 = $("<li title='新增节点:数据结构'>新增节点:数据结构</li>"); // 创建第一个<li>元素
var $li_2 = $("<li title='新增节点:设计模式'>新增节点:设计模式</li>"); // 创建第二个<li>元素
var $parent = $(".nm_ul"); // 获取<ul>节点。<li>的父节点
$parent.append($li_1); // 添加到<ul>节点中,使之能在网页中显示
$parent.append($li_2); // 可以采取链式写法:$parent.append($li_1).append($li_2);

通过浏览器查看源代码工具查看代码,可以看到最后两个<li>元素多了名为“title”的属性节点。由此可以判断,创建的元素的文本节点和属性节点都已经添加到网页中了。由此可见用jQuery来动态创建HTML元素是非常简单、方便和灵活的。

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

Javascript 相关文章推荐
客户端脚本中常常出现的一些问题和调试技巧
Jan 09 Javascript
Javascript 复制数组实现代码
Nov 26 Javascript
jQuery页面滚动浮动层智能定位实例代码
Aug 23 Javascript
javascript淡入淡出效果的实现思路
Mar 31 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
Sep 27 Javascript
上传图片js判断图片尺寸和格式兼容IE
Sep 01 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
Jul 09 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
Mar 21 Javascript
JavaScript中使用import 和require打包后实现原理分析
Mar 07 Javascript
微信小程序实现的一键拨号功能示例
Apr 24 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
Oct 09 Javascript
基于vuex实现购物车功能
Jan 10 Vue.js
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
简介JavaScript中getUTCMonth()方法的使用
Jun 10 #Javascript
You might like
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
js类式继承的具体实现方法
2013/12/31 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
简单谈谈Python中的闭包
2016/11/30 Python
Android分包MultiDex策略详解
2017/10/30 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
python中类的属性和方法介绍
2018/11/27 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
Python新手学习函数默认参数设置
2020/06/03 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
应届生程序员求职信
2013/11/05 职场文书
运动会四百米广播稿
2014/01/19 职场文书
施工安全责任书范本
2014/07/24 职场文书
裁员通知
2015/04/25 职场文书
成绩单家长意见
2015/06/03 职场文书
工作简报格式范文
2015/07/21 职场文书
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
Python实现双向链表基本操作
2022/05/25 Python