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 相关文章推荐
JavaScript实现禁止后退的方法
Dec 27 Javascript
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
Oct 24 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
Mar 28 Javascript
TreeView 用法(有代码)(asp.net)
Jul 15 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
Mar 15 Javascript
javascript中简单的进制转换代码实例
Oct 26 Javascript
jquery ajax局部加载方法详解(实现代码)
May 12 Javascript
详解vue移动端日期选择组件
Feb 22 Javascript
浅谈Vue 数据响应式原理
May 07 Javascript
微信小程序template模板与component组件的区别和使用详解
May 22 Javascript
JS中超越现实的匿名函数用法实例分析
Jun 21 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
Jul 31 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
《PHP边学边教》(01.开篇――准备工作)
2006/12/13 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
JS控制表格隔行变色
2006/06/26 Javascript
JavaScript 动态改变图片大小
2009/06/11 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
javascript中this的四种用法
2015/05/11 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
Python读大数据txt
2016/03/28 Python
Django多数据库的实现过程详解
2019/08/01 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
Python pip使用超时问题解决方案
2020/08/03 Python
英语自荐信范文
2013/12/11 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
python基于机器学习预测股票交易信号
2021/05/25 Python
Mysql 一主多从的部署
2022/05/20 MySQL