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高级拖动技术 setCapture,releaseCapture
Jul 31 Javascript
js 使用form表单select类实现级联菜单效果
Dec 19 Javascript
jquery插件推荐 jquery.cookie
Nov 09 Javascript
SuperSlide标签切换、焦点图多种组合插件
Mar 14 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
Dec 01 Javascript
Highcharts使用简例及异步动态读取数据
Dec 30 Javascript
详解JavaScript UTC时间转换方法
Jan 07 Javascript
浅谈Express异步进化史
Sep 09 Javascript
微信小程序 textarea 层级过高问题简单解决方案
Oct 14 Javascript
vue 父组件通过v-model接收子组件的值的代码
Oct 27 Javascript
vue中 数字相加为字串转化为数值的例子
Nov 07 Javascript
在微信小程序中使用mqtt服务的方法
Dec 13 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
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
PHP 批量删除数据的方法分析
2009/10/30 PHP
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
YII框架http缓存操作示例
2019/04/29 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
javascript基础知识讲解
2017/01/11 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
js常见遍历操作小结
2019/06/06 Javascript
javascript实现计算器功能
2020/03/30 Javascript
JS访问对象两种方式区别解析
2020/08/29 Javascript
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
基于python中的TCP及UDP(详解)
2017/11/06 Python
Django后台admin的使用详解
2019/07/08 Python
Python测试模块doctest使用解析
2019/08/10 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
2020/03/02 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
python压包的概念及实例详解
2021/02/17 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
房地产融资计划书
2014/01/10 职场文书
初三政治教学反思
2014/01/30 职场文书
教师考察材料范文
2014/06/03 职场文书
行政司机岗位职责
2015/04/10 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript