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 相关文章推荐
页面调用单个swf文件,嵌套出多个方法。
Nov 21 Javascript
JS获取整个页面文档的实现代码
Dec 15 Javascript
仿谷歌主页js动画效果实现代码
Jul 14 Javascript
jQuery中:last-child选择器用法实例
Dec 31 Javascript
js 动态给元素添加、移除事件的实现方法
Jul 19 Javascript
Vue2.0如何发布项目实战
Jul 27 Javascript
angularjs路由传值$routeParams详解
Sep 05 Javascript
JS正则表达式完美实现身份证校验功能
Oct 18 Javascript
web前端vue之CSS过渡效果示例
Jan 10 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
May 14 Javascript
基于jQuery的时间戳与日期间的转化
Jun 21 jQuery
vue如何使用async、await实现同步请求
Dec 09 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
PHP4和PHP5共存于一系统
2006/11/17 PHP
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
2020/03/20 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
一组PHP可逆加密解密算法实例代码
2014/01/21 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
Javascript倒计时代码
2010/08/12 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
jquery foreach使用示例
2013/09/12 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
JavaScript中的this机制
2016/01/30 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
Vue动态组件和异步组件原理详解
2019/05/06 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
python基础教程之自定义函数介绍
2014/08/29 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
python sleep和wait对比总结
2021/02/03 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
民族精神月活动总结
2014/08/28 职场文书
奉献家乡演讲稿
2014/09/16 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server