基于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 相关文章推荐
Prototype RegExp对象 学习
Jul 19 Javascript
一个简单的jquery的多选下拉框(自写)
May 05 Javascript
javascript实现类似java中getClass()得到对象类名的方法
Jul 27 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
Jan 26 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
May 28 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
Jun 01 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
Mar 02 Javascript
关于axios如何全局注册浅析
Jan 14 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
Nov 28 Javascript
如何使用webpack打包一个库library的方法步骤
Dec 18 Javascript
JS数组方法join()用法实例分析
Jan 18 Javascript
微信小程序复选框实现多选一功能过程解析
Feb 14 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
php常用字符串比较函数实例汇总
2014/11/24 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
Javascript的表单验证-揭开正则表达式的面纱
2016/03/18 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
python生成式的send()方法(详解)
2017/05/08 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
对python周期性定时器的示例详解
2019/02/19 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
2020/06/04 Python
如何解决安装python3.6.1失败
2020/07/01 Python
浅谈Python3中print函数的换行
2020/08/05 Python
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
公务员培训自我鉴定
2013/09/19 职场文书
留学推荐信中文范文三篇
2014/01/25 职场文书
珍惜资源的建议书
2014/08/26 职场文书
镇党政领导班子民主生活会思想汇报
2014/10/11 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
公司欠款证明
2015/06/24 职场文书
运动员加油词
2015/07/18 职场文书