基于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 相关文章推荐
onpropertypchange
Jul 01 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
Jan 24 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
Feb 07 Javascript
JavaScript编写连连看小游戏
Jul 07 Javascript
javascript解决IE6下hover问题的方法
Jul 28 Javascript
jQuery实现的超简单点赞效果实例分析
Dec 31 Javascript
JavaScript数据类型学习笔记
Jan 25 Javascript
js css3实现图片拖拽效果
Mar 04 Javascript
AngularJS中使用three.js的实例详解
Jul 21 Javascript
基于javascript中的typeof和类型判断(详解)
Oct 27 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
Jul 24 jQuery
使用FormData实现上传多个文件
Dec 04 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
php中spl_autoload详解
2014/10/17 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
php 的反射详解及示例代码
2016/08/25 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
jQuery scrollFix滚动定位插件
2015/04/01 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
JavaScript去除数组里重复值的方法
2015/07/13 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
详解PyCharm+QTDesigner+PyUIC使用教程
2019/06/13 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
光声世纪笔试题目
2012/08/25 面试题
总经理职责
2013/12/22 职场文书
网站客服岗位职责
2014/04/05 职场文书
525心理活动总结
2014/07/04 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸