最近把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 编程艺术的更多相关文章

  1. 读书笔记:JavaScript DOM 编程艺术(第二版)

    读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...

  2. JavaScript DOM 编程艺术·setInterval与setTimeout的动画实现解析

    先贴上moveElement()函数的大纲,为了方便观看,删了部分代码,完整版粘到文章后面. function moveElement(elementID,final_x,final_y,interv ...

  3. JavaScript DOM编程艺术学习笔记(一)

    嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推 ...

  4. JavaScript DOM编程艺术第一章:JavaScript简史

    本系列的博客是由本人在阅读<JavaScript DOM编程艺术>一书过程中做的总结.前面的偏理论部分都是书中原话,觉得有必要记录下来,方便自己翻阅,也希望能为读到本博客的人提供一些帮助, ...

  5. 《JavaScript dom 编程艺术》 placeholder占位符IE8兼容办法。

    在<JavaScript dom 编程艺术>第11章学来的. 相对于用JavaScript替换文本框的提示语句 <!DOCTYPE html> <html lang=&q ...

  6. 《javascript dom编程艺术》笔记(一)——优雅降级、向后兼容、多个函数绑定onload函数

    刚刚开始自学前端,如果不对请指正:欢迎各位技术大牛指点. 开始学习<javascript dom编程艺术>,整理一下学习到的知识.今天刚刚看到第六章,记下get到的几个知识点. 优雅降级 ...

  7. 《JavaScript DOM 编程艺术》

    前几天京东买了一本书,在豆瓣上好评如潮,买下了啃一啃,书名<JavaScript DOM 编程艺术>,在好好深造一下javaScript.一边啃,一边敲.当然应该要做好笔记.一些简单的就看 ...

  8. JavaScript DOM编程艺术读后感(1)—— 平稳退化

    最近,在读<JavaScript DOM编程艺术(第二版)>这本书,想着将自己的读后感记录下来,作为记忆吧. 其实我并不是最近才刚开始读这本书的,我读了有一段时间了.我是一名web前端开发 ...

  9. 《JavaScript Dom 编程艺术》读书笔记-第4章

    我的前端入门第一本书是<JavaScript Dom 编程艺术>,网上查找资料发现前端的入门推荐书籍最受好评的就是这本和<JavaScript 高级程序设计>了.之所以先选这本 ...

  10. Javascript DOM 编程艺术(第二版)读书笔记——基本语法

    Javascript DOM 编程艺术(第二版),英Jeremy Keith.加Jeffrey Sambells著,杨涛.王建桥等译,人民邮电出版社. 学到这的时候,我发现一个问题:学习过程中,相当一 ...

随机推荐

  1. SpringBoot中使用rabbitmq,activemq消息队列和rest服务的调用

    1. activemq 首先引入依赖 pom.xml文件 <dependency> <groupId>org.springframework.boot</groupId& ...

  2. ASP.NET Core 2.2 : 二十六. 应用JWT进行用户认证

    本文将通过实际的例子来演示如何在ASP.NET Core中应用JWT进行用户认证以及Token的刷新方案(ASP.NET Core 系列目录) 一.什么是JWT? JWT(json web token ...

  3. Win10环境下安装压缩包版本MySQL-8.0.13

    准备工作 系统环境:Windows 10 1803版本: 压缩包:MySQL-8.0.13 Windows zip包下载: 安装过程 1. 加载安装包到你的安装目录 将下载的MySQL压缩包解压并移到 ...

  4. 使用GPU跑Tensorflow代码实录

    使用conda创建一个新的虚拟环境 输入 conda create -n intelligent-judge python=3.6 创建一个python版本为3.6的名字是intelligent-ju ...

  5. 洛谷 P3627 【抢掠计划】

    题库:洛谷 题号:3627 题目:抢掠计划 link:https://www.luogu.org/problem/P3627 思路 : 这道题是一道Tarjan + 最长路的题.首先,我们用Tarja ...

  6. bzoj 1146 网络管理Network (CDQ 整体二分 + 树刨)

    题目传送门 题意:求树上路径可修改的第k大值是多少. 题解:CDQ整体二分+树刨. 每一个位置上的数都会有一段持续区间 根据CDQ拆的思维,可以将这个数拆成出现的时间点和消失的时间点. 然后通过整体二 ...

  7. JOBDU 1109 连通图

    题目1109:连通图 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4192 解决:2224 题目描述: 给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的. 输入: 每组数据 ...

  8. 2015北京区域赛 Xiongnu's Land

    Wei Qing (died 106 BC) was a military general of the Western Han dynasty whose campaigns against the ...

  9. ubuntu下创建定时任务的两种方式及常见问题解决方案

    创建定时任务的目的就是摆脱人为对程序重复性地运行. 0. 首先用下面的指令检查你是否安装crontab, crontab -l 如果本身就有的话,那么出现如下指令 LC_CTYPE="zh_ ...

  10. SpringBoot——HelloWorld

    微服务和单体应用的宏观理解 微服务:一组小型应用通过HTTP的方式进行沟通的开发思想 单体应用:ALL IN ONE 单体应用的不足: 随着业务逻辑的不断更新和迭代开发,起初的小型应用会不断膨胀,当应 ...