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 相关文章推荐
有关于JS构造函数的重载和工厂方法
Apr 07 Javascript
javascript动态的改变IFrame的高度实现自动伸展
Oct 12 Javascript
JavaScript实现快速排序的方法
Jul 31 Javascript
JS+CSS实现下拉列表框美化效果(3款)
Aug 15 Javascript
Eclipse引入jquery报错如何解决
Dec 01 Javascript
jQuery实现下拉框功能实例代码
May 06 Javascript
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
VUE axios上传图片到七牛的实例代码
Jul 28 Javascript
前端常见跨域解决方案(全)
Sep 19 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
Sep 14 Javascript
微信小程序实现的动态设置导航栏标题功能示例
Jan 31 Javascript
基于Vue实现电商SKU组合算法问题
May 29 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
简介JavaScript中getUTCMonth()方法的使用
Jun 10 #Javascript
You might like
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
PHP的FTP学习(一)
2006/10/09 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
封装的原生javascript弹出层代码
2010/09/24 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
javascript时区函数介绍
2012/09/14 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
Python使用sort和class实现的多级排序功能示例
2018/08/15 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
Python语言快速上手学习方法
2018/12/14 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
Python利用scapy实现ARP欺骗的方法
2019/07/23 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
python中time.ctime()实例用法
2021/02/03 Python
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
与UNIX有关的几个名词
2015/09/17 面试题
公共事业管理本科生求职信
2013/10/07 职场文书
鉴定评语大全
2014/05/05 职场文书
教师教学评估方案
2014/05/09 职场文书
医院见习报告范文
2014/11/03 职场文书
2015年科普工作总结
2015/07/23 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
英镑符号 £
2022/02/17 杂记