基于jquery的关于动态创建DOM元素的问题


Posted in Javascript onDecember 24, 2010
<script type="text/javascript"> 
document.getElementById("testDiv").innerHTML ="动态创建的div"; 
</script>

而且用的应该是还是乐此不疲,但是有多少人知道这是错误的做法!错误的原因:
(1) 在页面加载时改变了页面的结构. 在IE6中如果网络变慢或者页面内容太大就会出现"终止操作"的错误. 也就是说"永远不要在页面加载时改变页面的Dom模型".
(2) 使用修改HTML内容添加元素, 不符合Dom标准. 在实际工作中也碰到过使用这种方法修改内容后, 某些浏览器中并不能立刻显示添加的元素, 因为不同浏览器的显示引擎是不同的. 但是如果我们使用Dom的CreateElement创建对象, 在所有的浏览器中几乎都可以. 但是在jQuery中如果传入的而是一个完整的HTML字符串, 内部也是使用innerHTML. 所以也不是完全否定innerHTML函数的使用.所以从现在开始请摒弃这种旧知识, 使用下面介绍的正确方法编程.
关于使用HTML DOM创建元素本文不做详细介绍, 下面举一个简单的例子:第一种正确方式:
//使用Dom标准创建元素 
var select = document.createElement("select"); 
select.options[0] = new Option("加载项1", "value1"); 
select.options[1] = new Option("加载项2", "value2"); 
select.size = "2"; 
var object = testDiv.appendChild(select);

通过使用 document.createElement 方法我们可以创建Dom元素, 然后通过appendChild方法为添加到指定对象上.
第二种方式: 使用Jquery
当HTML字符串是没有属性的元素是, 内部使用document.createElement创建元素, 比如:

//jQuery内部使用document.createElement创建元素:

$("").css("border","solid 1px #FF0000").html("动态创建的div").appendTo(testDiv);
否则使用innerHTML方法创建元素:

//jQuery内部使用innerHTML创建元素:

$("动态创建的div").appendTo(testDiv)

Javascript 相关文章推荐
JS中处理与当前时间间隔的函数代码
May 23 Javascript
jquery实现tr元素的上下移动示例代码
Dec 20 Javascript
JSON.parse()和JSON.stringify()使用介绍
Jun 20 Javascript
jQuery实现checkbox全选的方法
Jun 10 Javascript
Webpack 实现 Node.js 代码热替换
Oct 22 Javascript
JavaScript实现经典排序算法之冒泡排序
Dec 28 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 jQuery
Vue.js实现实例搜索应用功能详细代码
Aug 24 Javascript
详解Vue打包优化之code spliting
Apr 09 Javascript
ES6 Object属性新的写法实例小结
Jun 25 Javascript
创建nuxt.js项目流程图解
Mar 13 Javascript
Vue 构造选项 - 进阶使用说明
Aug 14 Javascript
在JavaScript中获取请求的URL参数
Dec 22 #Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
Dec 22 #Javascript
jQuery Clone Bug解决代码
Dec 22 #Javascript
修改jquery.lazyload.js实现页面延迟载入
Dec 22 #Javascript
jquery插件 autoComboBox 下拉框
Dec 22 #Javascript
Jquery截取中文字符串的实现代码
Dec 22 #Javascript
jquery里的each使用方法详解
Dec 22 #Javascript
You might like
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
php学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
PHP header函数分析详解
2011/08/06 PHP
php修改NetBeans默认字体的大小
2013/07/02 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
JavaScript 学习笔记之操作符
2015/01/14 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
python重试装饰器示例
2014/02/11 Python
python求斐波那契数列示例分享
2014/02/14 Python
python实现简易云音乐播放器
2018/01/04 Python
python requests指定出口ip的例子
2019/07/25 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
python不同系统中打开方法
2020/06/23 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
vivo智能手机官方商城:vivo
2016/09/22 全球购物
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
周鸿祎:教你写创业计划书
2013/12/30 职场文书
初三家长会邀请函
2014/01/18 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
租车协议书范本2014
2014/11/17 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书