基于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 相关文章推荐
JS中的数组的sort方法使用示例
Jan 22 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
Feb 13 Javascript
JavaScript运行时库属性一览表
Mar 14 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
Sep 21 Javascript
node.js中的fs.fchmodSync方法使用说明
Dec 16 Javascript
jQuery中使用each处理json数据
Apr 23 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
Sep 04 Javascript
AngularJS基础 ng-readonly 指令简单示例
Aug 02 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
Feb 26 Javascript
微信小程序调用PHP后台接口 解析纯html文本
Jun 13 Javascript
Vue.js点击切换按钮改变内容的实例讲解
Aug 22 Javascript
JavaScript HTML DOM元素 节点操作汇总
Jul 29 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+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
PHP获取表单所有复选框的值的方法
2014/08/28 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
js循环改变div颜色具体方法
2013/06/25 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
TensorFlow高效读取数据的方法示例
2018/02/06 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
会计自我鉴定
2013/11/02 职场文书
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
小学运动会表扬稿
2014/01/19 职场文书
师德模范事迹材料
2014/06/03 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
资金申请报告范文
2015/05/14 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书
Python+pyaudio实现音频控制示例详解
2022/07/23 Python