JavaScript DOM 编程艺术
最近把JavaScript DOM 编程艺术这本书看完了,觉得这本书很好 深入浅出地展示了渐进增强、平稳退化、结构和样式分离等编程思想,我对书中重要的知识进行了梳理总结。
一.网页
二.JavaScript
三.DOM
四.重要知识点
1.innerHTML (html属性,只有web文档支持)
(1)读取
<div id="testdiv"><p>This is <em>my</em>content</p></div>
var testdiv = document.getElementById("testdiv");
testdiv.innerHTML 为 <p>This is <em>my</em>content</p>
(2)写入
<div id="testdiv"></div>
var testdiv = document.getElementById("testdiv");
testdiv.innerHTML = "<p>This is <em>my</em>content</p>";
2.appendChild
<div id="testdiv"></div>
var testdiv = document.getElementById("testdiv");
var para = document.createElement("p");
para.innerHTML = "This is <em>my</em>content";
testdiv.appendChild(para);
3.createTextNode
<div id="testdiv"></div>
var testdiv = document.getElementById("testdiv");
var para = document.createElement("p");
testdiv.appendChild(para);
var txt= document.createTextNode("Hello world");
para.appendChild(txt);
4. insertBefore
<div id="testdiv">你好</div>
var para = document.createElement("p");
var txt = document.createTextNode("Hello world");
para.appendChild(txt);
var testdiv = document.getElementById("testdiv");
testdiv.parentNode.insertBefore(para, testdiv);
结果:
<p>Hello world</p>
<div id="testdiv">你好</div>
5.DOM中没有提供insertAfter函数,但是可以自己实现
<div id="testdiv">你好</div>
var para = document.createElement("p");
var txt = document.createTextNode("Hello world");
para.appendChild(txt);
var testdiv = document.getElementById("testdiv");
var parent = testdiv.parentNode;
if (parent.lastChild == testdiv) {
parent.appendChild(para);
} else {
parent.insertBefore(para, testdiv.nextSibling);
}
结果:
<div id="testdiv">你好</div>
<p>Hello world</p>
6.html里的样式,在DOM中用驼峰命名法
获取
<p id="example" style="color:#999999;font-family:'Arial',sans-serif"></p>
var para = document.getElementById("example");
alert(para.style.fontFamily);
设置
para.style.fontFamily=”normal”;
7.设置类名
<p id="example" style="color:#999999;font-family:'Arial',sans-serif"></p>
var para = document.getElementById("example");
para.className = "exampleClass";
获取类名
document.getElementsByClassName("exampleClass")[0].style.fontFamily;
8.定时器setTimeout
<p id="message">Whee!</p>
window.onload = function () {
var elem= document.getElementById("message");
elem.style.position = "absolute";
elem.style.left = "50px";
elem.style.top = "100px";
movement = setTimeout("moveMessage()", 5000); //5秒后执行moveMessage()
}
function moveMessage()
{
var elem = document.getElementById("message");
elem.style.position = "absolute";
elem.style.left = "200px";
elem.style.top = "100px";
}
取消定时器
ClearTimeout(movement);
9.javaScript实现动画效果
<p id="message">Whee!</p>
<p id="message2">Whoa!</p>
window.onload = function () {
var elem = document.getElementById("message");
elem.style.position = "absolute";
elem.style.left = "50px";
elem.style.top = "100px";
moveElement("message", 125, 60, 30);
var elem2 = document.getElementById("message2");
elem2.style.position = "absolute";
elem2.style.left = "50px";
elem2.style.top = "50px";
moveElement("message2", 125, 125, 30);
}
function moveElement(elementID,final_x,final_y,interval) {
var elem = document.getElementById(elementID);
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
if (xpos == final_x && ypos == final_y) {
return true;
}
if (xpos < final_x) {
xpos++;
}
if (xpos > final_x) {
xpos--;
}
if (ypos < final_y) {
ypos++;
}
if (ypos > final_y) {
ypos--;
}
elem.style.left = xpos + "px";
elem.style.top = ypos + "px";
var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
movement = setTimeout(repeat, interval);
}
10.juery
(1)
var items = document.getElementsByTagName("li");
for (var i = 0; i < items.length; i++) {
alert(typeof items[i]);
}
等价于
$('li').each(function (i) {
alert(typeof this);
});
(2)
<input id="name"/>
赋值
$("#name").attr("value", "张三");
取值
$("#name").attr("value") ;
(3)把div追加到body里
$('<div id="example">hello</div>').appendTo(document.body);
(4)初始化函数
$(function ()
{
});
(5)a标签单击事件
<a href="#">hello</a>
$('a').click(function (event) {
window.open("HtmlPage1.html");
});
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
JavaScript DOM 编程艺术的更多相关文章
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- JavaScript DOM 编程艺术·setInterval与setTimeout的动画实现解析
先贴上moveElement()函数的大纲,为了方便观看,删了部分代码,完整版粘到文章后面. function moveElement(elementID,final_x,final_y,interv ...
- JavaScript DOM编程艺术学习笔记(一)
嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推 ...
- JavaScript DOM编程艺术第一章:JavaScript简史
本系列的博客是由本人在阅读<JavaScript DOM编程艺术>一书过程中做的总结.前面的偏理论部分都是书中原话,觉得有必要记录下来,方便自己翻阅,也希望能为读到本博客的人提供一些帮助, ...
- 《JavaScript dom 编程艺术》 placeholder占位符IE8兼容办法。
在<JavaScript dom 编程艺术>第11章学来的. 相对于用JavaScript替换文本框的提示语句 <!DOCTYPE html> <html lang=&q ...
- 《javascript dom编程艺术》笔记(一)——优雅降级、向后兼容、多个函数绑定onload函数
刚刚开始自学前端,如果不对请指正:欢迎各位技术大牛指点. 开始学习<javascript dom编程艺术>,整理一下学习到的知识.今天刚刚看到第六章,记下get到的几个知识点. 优雅降级 ...
- 《JavaScript DOM 编程艺术》
前几天京东买了一本书,在豆瓣上好评如潮,买下了啃一啃,书名<JavaScript DOM 编程艺术>,在好好深造一下javaScript.一边啃,一边敲.当然应该要做好笔记.一些简单的就看 ...
- JavaScript DOM编程艺术读后感(1)—— 平稳退化
最近,在读<JavaScript DOM编程艺术(第二版)>这本书,想着将自己的读后感记录下来,作为记忆吧. 其实我并不是最近才刚开始读这本书的,我读了有一段时间了.我是一名web前端开发 ...
- 《JavaScript Dom 编程艺术》读书笔记-第4章
我的前端入门第一本书是<JavaScript Dom 编程艺术>,网上查找资料发现前端的入门推荐书籍最受好评的就是这本和<JavaScript 高级程序设计>了.之所以先选这本 ...
- Javascript DOM 编程艺术(第二版)读书笔记——基本语法
Javascript DOM 编程艺术(第二版),英Jeremy Keith.加Jeffrey Sambells著,杨涛.王建桥等译,人民邮电出版社. 学到这的时候,我发现一个问题:学习过程中,相当一 ...
随机推荐
- win server 2008搭建域环境
0x00 简介 1.域控:win server 2008 2.域内服务器:win server 2008.win server 2003 3.域内PC:win7 x64.win7 x32.win xp ...
- SpringCould-------使用Hystrix 实现断路器进行服务容错保护
消费: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or ...
- vue-cli+vue 2.0+element-ui+vue-router+echarts.js开发后台管理系统项目教程
一.首先使用npm创建vue项目框架: 1.安装vue-cli: $ npm install --global vue-cli 2.初始化项目:$ npm init webpack 项目名 3 ...
- odoo模板中的t-标签用法
在OpenERP中,通过QWeb来对模板进行渲染后加载到浏览器中,而模板中有许多的标签来定制各种需求变化,在这里记录学习过程中碰到的标签定义,以方便查询. 模板中的标签统一都是以"t-&qu ...
- JAVA 获取时间段内的每一天
public class day { public static void main(String[] args) { // TODO Auto-generated method stub Strin ...
- egret之消除游戏开发
1.地图 (1)地图形状不同,尺寸不变 (2)背景图变化 2.步数 (1)不同关卡步数不同 (2)步数为01,游戏失败 3.道具 4.消除 (1)>=3可消除 (2)不可消除时,自动打乱 5.数 ...
- Egret白鹭开发微信小游戏(使用皮肤搭建UI,代码调用组件功能)
(1)新建皮肤,并命名如下 (2)根据实际情况自定义皮肤,例如: (3)修改名字为如下: (4)运行游戏会自动生成以下代码: (5)在default.thm.json中添加如下代码:(具体路径名字根据 ...
- C#开发BIMFACE系列10 服务端API之获取文件下载链接
系列目录 [已更新最新开发文章,点击查看详细] 通过BIMFACE控制台或者调用服务接口上传文件成功后,默认场景下需要下载该源文件,下载文件一般需要知道文件的下载链接即可.BIMACE平台提供 ...
- 【Leetcode】【简单】【136. 只出现一次的数字】【JavaScript】
题目描述 136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外 ...
- QFramework 使用指南 2020(七):Res Kit (1)概述与基本使用
在上一篇,我们刚刚结束了 脚本生成专题,我们知道 QF 提供了两种脚本生成模式,一种是 ViewController + Bind ,另一种是 UI Kit 模式. 本来打算,介绍完 ViewCont ...