基于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 相关文章推荐
面向对象的编程思想在javascript中的运用上部
Nov 20 Javascript
jquery URL参数判断,确定菜单样式
May 31 Javascript
js控制滚动条缓慢滚动到顶部实现代码
Mar 20 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
Sep 01 Javascript
ionic实现滑动的三种方式
Aug 27 Javascript
什么是JavaScript中的结果值?
Oct 08 Javascript
JS检测数组类型的方法小结
Mar 14 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
Aug 28 Javascript
JavaScript实现全选取消效果
Dec 14 Javascript
React Router v4 入坑指南(小结)
Apr 08 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
May 30 jQuery
Layui给switch添加响应事件的例子
Sep 03 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中数据的批量导入(csv文件)
2006/10/09 PHP
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
splice slice区别
2006/10/09 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
Python时间获取及转换知识汇总
2017/01/11 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
合伙经营协议书范本(通用版)
2014/12/03 职场文书
故宫导游词
2015/01/31 职场文书
借条格式范本
2015/05/25 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
MySQL为id选择合适的数据类型
2021/06/07 MySQL
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
Vue.Draggable实现交换位置
2022/04/07 Vue.js