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 相关文章推荐
基于jquery完美拖拽,可返回拖动轨迹
Mar 29 Javascript
js购物车实现思路及代码(个人感觉不错)
Dec 23 Javascript
javascript实现数字验证码的简单实例
Feb 10 Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 Javascript
自定义百度分享的分享按钮
Mar 18 Javascript
浅析Bootstrap缩略图组件与警示框组件
Apr 29 Javascript
基于jQuery实现页面搜索功能
Mar 26 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
Dec 16 Javascript
jQuery extend()详解及简单实例
May 06 jQuery
JavaScript基于面向对象实现的猜拳游戏
Jan 03 Javascript
深入理解requireJS-实现一个简单的模块加载器
Jan 15 Javascript
微信小程序实现滑动翻页效果(完整代码)
Dec 06 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
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
php使用wordwrap格式化文本段落的方法
2015/03/17 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
接收键盘指令的脚本
2006/06/26 Javascript
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
基于jquery的表格排序
2010/09/11 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python格式化css文件的方法
2015/03/10 Python
python flask安装和命令详解
2019/04/02 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
全方位了解CSS3的Regions扩展
2015/08/07 HTML / CSS
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
Sql面试题
2013/03/20 面试题
网吧收银员岗位职责
2013/12/14 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
查摆剖析材料范文
2014/09/30 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书