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类型:每一个节点都含有 ...
随机推荐
- Rabbitmq -Routeing模式- python编码实现
(using the pika 0.10.0 Python client) In the previous tutorial we built a simple logging system. We ...
- IOS中在自定义控件(非视图控制器)的视图跳转中 代理方法与代码块的比较
//代码块与代替代理的设计方法 我就以在自定义视图中(非视图控制器,不能实现视图控制功能),通过代理和代码块两种方法分别实现视图的跳转,进行对比 首先自定义了一个视图,上面有一个已经注册了得BUtto ...
- 关键词提取1-C#
C# 中文分词算法(实现从文章中提取关键字算法) using System;using System.IO;using System.Text;using System.Collections;usi ...
- Java——包的概念及使用
package是在使用多个类或接口时,为了避免名称重复而采用的一种措施,直接在程序中加入package关键字即可 编译语法: javac -d . HelloWord.java -d:表示生成目录,生 ...
- 一个 Sql语句优化的问题- STATISTICS 统计信息
前段时间,同事遇到一个 Sql语句的问题,一个列表分页功能响应在30 s以上,看数据库里面的数据条数,数据量也不大,相关字段的一些索引也都有,可就是慢.于是找出具体的sql 语句出来分析,分页功能主要 ...
- 解决并发情况下库存减为负数问题--update2016.04.24
场景: 一个商品有库存,下单时先检查库存,如果>0,把库存-1然后下单,如果<=0,则不能下单,事务包含两条sql语句: ; update products ) WHERE id=; 在并 ...
- Saltstack pillar组件
pillar组件 pillar也是Saltstack最重要的组件之一,其作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用,如模板.state.API等.在pillar中定义的数据与 ...
- WebGrid with filtering, paging and sorting 【转】
WebGrid with filtering, paging and sorting by Jose M. Aguilar on April 24, 2012 in Web Development A ...
- Jenkins入门总结
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作 在网上貌似没有找到Jenkins的中文的太多的文 ...
- JavaScript内置对象与原型继承
(一) 理解JavaScript类定义 1>关于内置对象理解 console.log(Date.prototype.__proto__===Object.prototype //tru ...