DOM之操作技术
1.1 动态脚本
动态加载的外部JS文件能够立即运行。难点在于如何知道脚本加载完成了?可以通过事件来检测。IE对待<script>元素特殊性,不允许DOM访问其子节点。使用元素的text属性来指定JS代码。
1.2 动态样式
IE对待<style>元素特殊性,不允许DOM访问其子节点。使用元素的styleSheet属性来指定代码。小心IE的styleSheet属性,在重复设置和设置为空时,可能导致浏览器崩溃。
1.3 操作表格
为了方便创建表格,HTMLDOM为<table>、<tbody>和<tr>元素添加了一些属性和方法。使用这些属性和方法,操作表格更加方便。
1.4 使用NodeList
理解NodeList及其”近亲“NameNodeMap和HTMLCollection,是从整体上理解DOM的关键所在。这三个集合都是”动态的“。
var divs = document.getElementsByTagName("div"), i, div; for( i = 0; i < divs.length; i++) { div = document.createElement("div"); docment.body.appendChild(div); }
这段代码会是一个死循环,因为i的值和divs.length的值同步增长。因修改成如下形式:
var divs = document.getElementsByTagName("div"); i, len, div; for ( i = 0, len = divs.length; i < len; i++) { div = document.createElement("div"); document.body.appendChild(div); }
1.6 小结
DOM由各种节点构成。
1)最基本的节点类型是Node,用于抽象地表示文档中一个独立的部分;所有其他类型继承自它。
2)Document类型表示整个文档,是一组分层节点的根节点在JS中,document对象是Document类型的一个实例。
3)Element节点表示文档中的所有HTML或XML元素。
4)另外的节点类型,分别表示文本内容、注释、文档类型等。
访问DOM的操作在处理<script>和<style>元素时还是存在一定复杂性。某些浏览器会将它们与其他元素区别对待。导致了使用innerHTML和创建新元素时的一些问题。在JS中操作DOM是非常昂贵的操作,应尽量减少。
DOM之操作技术的更多相关文章
- Js杂谈-DOM
前言 对jQuery的依赖.导致js的原生方法的淡忘,如果是封装自己的库,那势必要用到js的许多原生方法.从Jquery强大的dom处理开始,我们开始回顾javascript那些古老而坚挺的DOM方法 ...
- 《JAVASCRIPT高级程序设计》节点层次和DOM操作技术
DOM可以将任何HTML和XML文档描绘成一个由多层次节点构成的结构.节点分为几种不同的类型,每种类型分别表示文档中不同的信息,每种类型都继承与Node接口,因此都共同享有一些属性和方法,同时,也拥有 ...
- DOM操作技术
1.动态script function loadScript(url) { var script = document.createElement("script"); scrip ...
- DOM 操作技术【JavaScript高级程序设计第三版】
很多时候,DOM 操作都比较简明,因此用JavaScript 生成那些通常原本是用HTML 代码生成的内容并不麻烦.不过,也有一些时候,操作DOM 并不像表面上看起来那么简单.由于浏览器中充斥着隐藏的 ...
- DOM操作技术之动态脚本与动态样式(兼容版)
动态脚本 使用<script>元素可以向页面中插入Javascript代码,一种方式是通过其src特性包含外部文件,另一种方式就是用这个元素本身来包含代码. 而我们要说的动态脚本,指的是在 ...
- 10.2 DOM 操作技术【JavaScript高级程序设计第三版】
很多时候,DOM 操作都比较简明,因此用JavaScript 生成那些通常原本是用HTML 代码生成的内容并不麻烦.不过,也有一些时候,操作DOM 并不像表面上看起来那么简单.由于浏览器中充斥着隐藏的 ...
- 10. javacript高级程序设计-DOM
1. DOM DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序接口) 1.1 节点层次 DOM可以将任何HTML和XML文档描绘成一个由多层节点构成的结构.节点分为几种不同的类型 ...
- JavaScript(5)——DOM
DOM操作 为了写这一篇随笔真的是费了好多力气,虽然还是写不好.本来是从周一都开始写的,但是周二周三忙着去帮忙招新了,哈哈哈.感觉做自己喜欢的事特别好玩,虽然挺忙的.看着那些小鲜肉,感觉自己真的老了啊 ...
- JavaScript学习日志(五):DOM
一,基本定义 DOM是针对HTML和XML文档的API,根据W3C的HTML DOM标准,html文档中所以内容(无论是元素还是标签还是注释还是元素属性)都是节点. 二,Node类型:每一个节点都含有 ...
随机推荐
- jquery 验证表单信息
/** * $().validate(json); * *rules:自定义规则 * *messages:提示信息 */ $(document).ready(function(){ $(". ...
- C#实现录制屏幕
以前写过两篇录制麦克风语音和摄像头视频的文章(实现语音视频录制.在服务器端录制语音视频),最近有朋友问,如果要实现屏幕录制这样的功能,该怎么做了?实际上原理是差不多的,如果了解了我前面两篇文章中介绍的 ...
- SpringMVC中的设计模式
1.<跟我学SpringMVC> P10 2.<跟我学SpringMVC> P32
- Tomcat的目录结构、处理流程、主配置文件(server.xml)释义
参考资料: http://www.cnblogs.com/xdp-gacl/p/3744053.html http://grass51.blog.51cto.com/4356355/1123400 1 ...
- Nginx实现简易泛域名CDN节点
如何使用Nginx泛域名解析+反向代理+静态资源缓存呢? 安装nginx,安装过程不再赘述,记得带上pcre.gzip.sub.status这几个模块,另外如果想开通在线清理缓存功能,需要安装ngx_ ...
- windows命令关机
不知道为啥,远程连接的window服务器没有关机命令,感觉是不是管理员权限导致的,所以找了下用命令关机,如下 shutdown -s -t #5秒内关机 shutdown -r -t #5秒内重启
- ecshop 后台【左侧新增菜单】
模板文件admin/template/menu.htm admin/includes/inc_menu.php 菜单排序(链接) langagues/zh_cn/admin/common.php 语 ...
- ASP.NET WebForm中用async/await实现异步
1. 在.aspx中添加异步标记 <%@ Page Language="C#" Async="true"%> 2. 在.aspx.cs或者.ascx ...
- Database Schema Reader
数据架构与INSERT脚本生成 https://dbschemareader.codeplex.com/wikipage?title=Writing%20Data&referringTitle ...
- OC-点语法
点语法的本质:方法调用 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, ...