DOM操作技术

动态脚本

指得是页面加载时不存在,但将来的某一时刻通过修改DOM动态添加的脚本,跟操作HTML元素一样,创建动态脚本也有2种方式:插入外部文件和直接插入JavaScript代码

var script=document.createElement("script");

script.type="text/javascript";

script.src="client.js";

document.body.appendChild(script);

另一种指定JavaSctipt代码的方式是行内方式,由于IE将<script>视为一个特殊的元素,不允许DOM访问其子节点,不过可以使用<script>元素里的text属性指定JavaScript代码

var script=document.createElement("script");

script.type="text/javascript";

script.text="function sayHi(){alert('Hi');}";

document.body.appendChild(script);

Safari3.0之前的版本不能正确地支持text属性,允许使用文本节点来指定代码

var script=document.createElement("script");

script.type="text/javascript";

var code="function sayHi(){alert('Hi');}";

try{

  script.appendChild(document.createTextNode(code));

  }

catch(ex){

  script.text=code;

  }

document.body.appendChild(script);

动态样式

<link>元素用于包含来自外部的文件,<style>元素用于指定嵌入的样式

function loadStyles(url){

    var link=document.createElement("link");

    link.rel="stylesheet";

    link.type="text/css";

    link.href=url;

    var head=document.getElementsByTagName("head")[0];

    head.appendChild("link");

    }

loadStyles("style.css");

IE将<style>元素视为一个特殊的、与<script>类似的节点,不允许访问其子节点,解决IE这个问题就是访问元素的styleSheet属性,该属性又有一个cssText属性,通过try-catch语句捕获IE抛出的错误,再针对IE的特殊方式设置样式

操作表格

HTML DOM为<table>、<tbody>、<tr>元素添加了一些属性和方法,方便我们操作表格

使用NodeList

理解NodeList及其“近亲”NamedNodeMap和HTMLCollection,它们都是动态的,可以

len=divs.length;避免迭代NodeList时出现问题

-------------------------------------------本章终---------------------------------------

JavaScript高级程序设计26.pdf的更多相关文章

  1. JavaScript高级程序设计2.pdf

    第三章 基本概念 区分大小写 ECMAScript中的一切(变量.函数名和操作符)都区分大小写 标识符 指变量.函数.属性的名字或者函数的参数 第一个字符必须是一个字母.下划线或美元符号,其它字符可以 ...

  2. JavaScript高级程序设计61.pdf

    JSON对象 早期的JSON解析器就是使用JavaScript的eval()函数,ECMAScript5对解析JSON的行为做出了规定,定义了全局对象JSON. JSON对象有2个方法:stringi ...

  3. JavaScript高级程序设计60.pdf

    错误处理 try-catch语句 try{ //可能会导致错误的代码 }catch(error){ //在错误发生时如何处理 } error是一个包含着错误信息的对象,它有一个message属性,保存 ...

  4. JavaScript高级程序设计58.pdf

    15章 使用Canvas绘图 略 16章 HTML5脚本编程 HTML5规范了新的HTML标记和JavaScript API,以便简化创建动态Web界面的工作 跨文档消息传递 简称XDM,指来自不同域 ...

  5. JavaScript高级程序设计57.pdf

    表单序列化 首先了解一下浏览器如何将数据发送给服务器 对表单字段的名称和值进行URL编码,使用和号(&)分隔 不发送禁用的表单字段 只发送勾选的复选框和单选按钮 不发送type为“reset” ...

  6. JavaScript高级程序设计55.pdf

    输入模式 HTML5为文本字段新增了pattern属性,这个属性的值是一个正则表达式,用于匹配文本框中的值 例如,只想在允许在文本字段中输入数值 <input type="text&q ...

  7. JavaScript高级程序设计54.pdf

    过滤输入 对于一些浏览器,可以使用正则表达式里的text()测试用户按下的按键,Firefox和safari(3.1版本之前)会对向上向下.退格键和删除键触发keypress事件,在Firefox中, ...

  8. JavaScript高级程序设计53.pdf

    共有的表单字段方法 每个表单字段都有两个方法:focus()和blur(),其中focus()用于将浏览器焦点设置到表单字段,激活表单字段.可以侦听页面的load事件 EventUtil.addHan ...

  9. JavaScript高级程序设计52.pdf

    表单脚本 表单的基础知识 在HTML中,表单是由<form>元素表示的,在Javascript对应的是HTMLFormElement类型,它继承自HTMLElement,因此具有与其他HT ...

随机推荐

  1. Python没有执行__init__

    疑惑 提出问题 前天同事问我一个问题,为什么这个脚本中的没有调用A 的__init__.脚本如下: class A(object): def __init__(self, *args, **kwarg ...

  2. open()函数

    STDOUT_FILENO            1 标准输入 STDIN_FILENO             0 标准输出 STDERR_FILENO         2 标准错误 在/proc目 ...

  3. php 加载函数 __autoload(), spl_autoload_register()

    来自:http://www.cnblogs.com/myluke/archive/2011/06/25/2090119.html spl_autoload_register (PHP 5 >= ...

  4. python【第十九篇】Django进阶

    1.路由系统优化 1.1 路由分发 前面我们已经知道,在工程名下的urls.py中写我们的路由映射关系,那么问题来了,假设我们有10个app,如果把所有的url映射都写在urls.py文件中,那么每一 ...

  5. 重构技巧 引入Null对象

    描述:有两个类,学生类和导师类,学生的导师类可能不存在,因此在获取学生导师名字等信息时都要先判断导师名字是否为空.重构后通过一个空导师类来处理导师为空的相应逻辑. Before # introduce ...

  6. iOS - Responder Chain

     在iOS中,当发生事件响应时,必须知道由谁来响应事件.这就是由响应者链来对事件进行响应,所有事件响应的类都是UIResponder的子类,响应者链是一个由不同对象组成的层次结构,其中的每个对象将依次 ...

  7. Cocoapod安装 - 管理第三方库

    在我们开发移动应用的时候,一般都会使用到第三方工具,而由于第三方类库的种类繁多,我们在项目中进行管理也会相对麻烦,所以此时我们就需要一个包管理工具,在iOS开发中,我们使用最多的就是Cocoapods ...

  8. 监听iOS检测屏幕旋转状态,不需开启屏幕旋转-b

    -(void)rotation_icon:(float)n { UIButton *history_btn= [self.view viewWithTag:<#(NSInteger)#>] ...

  9. PHP 文件上传注意一个地方,移动文件时要保证目标目录存在,否则报错

    move_uploaded_file ( $_FILES ["file"] ["tmp_name"], "upload/" . $fileN ...

  10. 【UVA 11383】 Golden Tiger Claw (KM算法副产物)

    Omi, Raymondo, Clay and Kimiko are on new adventure- in search of new Shen Gong Wu. But EvilBoy Geni ...