基于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 相关文章推荐
asp.net+js 实现无刷新上传解析csv文件的代码
May 17 Javascript
jquery弹出框的用法示例(一)
Aug 26 Javascript
js在IE与firefox的差异集锦
Nov 11 Javascript
JavaScript替换当前页面的方法
Apr 03 Javascript
js淡入淡出的图片轮播效果代码分享
Aug 24 Javascript
Ext JS动态加载JavaScript创建窗体的方法
Jun 23 Javascript
jquery购物车结算功能实现方法
Oct 29 Javascript
assert()函数用法总结(推荐)
Jan 25 Javascript
JS简单获取当前日期和农历日期的方法
Apr 17 Javascript
JS实现的找零张数最小问题示例
Nov 28 Javascript
easyui下拉框动态级联加载的示例代码
Nov 29 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
Nov 25 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数组操作
2011/12/30 PHP
PHP URL路由类实例
2013/11/12 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
php绘制一条弧线的方法
2015/01/24 PHP
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
jquery数组之存放checkbox全选值示例代码
2013/12/20 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
2017/12/18 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
Python单链表的简单实现方法
2014/09/23 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
Python变量访问权限控制详解
2019/06/29 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
海量信息软件测试笔试题
2015/08/08 面试题
高一政治教学反思
2014/01/28 职场文书
门前三包责任书
2014/04/15 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
团队口号大全
2014/06/06 职场文书
初一英语教学反思
2016/02/15 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers