基于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 关键字屏蔽实现函数
Aug 02 Javascript
javascript 面向对象继承
Nov 26 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
Oct 29 Javascript
JS控制日期显示的小例子
Nov 23 Javascript
input链接页面、打开新网页等等的具体实现
Dec 30 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
Jan 10 Javascript
Javascript函数的参数
Jul 16 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
Nov 13 Javascript
JS图片等比例缩放方法完整示例
Aug 03 Javascript
node.js实现博客小爬虫的实例代码
Oct 08 Javascript
图片懒加载imgLazyLoading.js使用详解
Sep 15 Javascript
vue实现底部菜单功能
Jul 24 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
优化使用mysql存储session的php代码
2008/01/10 PHP
php生成略缩图代码
2012/07/16 PHP
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
浅谈JavaScript作用域和闭包
2017/09/18 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
详解VUE 数组更新
2017/12/16 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
apicloud拉起小程序并传递参数的方法示例
2018/11/21 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
华为的Java面试题
2014/03/07 面试题
大学生就业自荐信
2013/10/26 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书