基于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 相关文章推荐
JQuery学习笔记 nt-child的使用
Jan 17 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
Feb 16 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
Sep 16 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
Apr 15 Javascript
2种jQuery 实现刮刮卡效果
Feb 01 Javascript
深入分析Cookie的安全性问题
Mar 01 Javascript
js实现发送验证码后的倒计时功能
May 28 Javascript
详解JavaScript中常用的函数类型
Nov 18 Javascript
深入理解逻辑表达式的用法 与或非的用法
Jun 06 Javascript
jquery模拟多级复选框效果的简单实例
Jun 08 Javascript
AngularJS入门教程之更多模板详解
Aug 19 Javascript
vue实现element-ui对话框可拖拽功能
Aug 17 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使用CURL实现多线程抓取网页
2015/04/30 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
Js 导出table内容到Excel的简单实例
2013/11/19 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
jQuery实现不断闪烁文字的方法
2015/05/15 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
Python 编程速成(推荐)
2019/04/15 Python
python实现接口并发测试脚本
2019/06/25 Python
python3 求约数的实例
2019/12/05 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
技术人员面试提纲
2013/11/28 职场文书
房地产还款计划书
2014/01/10 职场文书
社区八一活动方案
2014/02/03 职场文书
财务简历的自我评价
2014/03/05 职场文书
人代会标语
2014/06/30 职场文书
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
寻找成龙观后感
2015/06/12 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书