基于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 相关文章推荐
DHTML Slide Show script图片轮换
Mar 03 Javascript
基于jQuery的图片剪切插件
Aug 03 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
Mar 04 Javascript
关于jquery中全局函数each使用介绍
Dec 10 Javascript
jQuery实现简单的图片查看器
Sep 11 Javascript
Laravel中常见的错误与解决方法小结
Aug 30 Javascript
javascript事件的绑定基础实例讲解(34)
Feb 14 Javascript
使用async-validator编写Form组件的方法
Jan 10 Javascript
浅谈React + Webpack 构建打包优化
Jan 23 Javascript
Webstorm2016使用技巧(SVN插件使用)
Oct 29 Javascript
JQuery复选框全选效果如何实现
May 08 jQuery
Vue+Element-U实现分页显示效果
Nov 15 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
咖啡与牛奶
2021/03/03 冲泡冲煮
PHPMyAdmin 快速配置方法
2009/05/11 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
php读取本地json文件的实例
2018/03/07 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
python 中xpath爬虫实例详解
2019/08/26 Python
python处理RSTP视频流过程解析
2020/01/11 Python
在keras中实现查看其训练loss值
2020/06/16 Python
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
台湾旅游网站:灿星旅游
2018/10/11 全球购物
意大利男装网店:Vrients
2019/05/02 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
电子商务专业推荐信范文
2013/12/02 职场文书
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
基层党员对照检查材料
2014/08/25 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js