最近把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. 深入浅出TypeScript(2)- 用TypeScript创建web项目

    前言 在第一篇中,我们简单介绍了TypeScript的一些简单语法,那么如果我们只是简单使用TypeScript开发一个web项目,应该做哪些准备?接下来我们就结合TypeScript和Webpack ...

  2. python 16 模块

    目录 模块 1. 自定义模块 1.1 模块分类 1.2 模块的导入 1.3 import 和 from 1.4 from 模块名 import * 1.5 模块的用法: 1.6 导入路径 2. tim ...

  3. 剑指Offer(二十五):复杂链表的复制

    剑指Offer(二十五):复杂链表的复制 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/bai ...

  4. TypeError: _obtain_input_shape() got an unexpected keyword argument 'include_top'

    报错 Traceback (most recent call last): File "D:/PyCharm 5.0.3/WorkSpace/3.Keras/2.Application中五款 ...

  5. JIRA使用过程出现问题整理解答

    转自:http://www.51testing.com/html/44/n-2820444.html 发表于:2015-5-28 10:22  作者:知乎   来源:51Testing软件测试网采编 ...

  6. 杭电多校第二场 1005 hack it

    题意: 构造一个n*n 的 01 矩阵, 0 < n < 2001,  矩阵需要满足没有一个子矩阵的4个角都是1,并且矩阵内1的个数至少有85000个. 题解:数论构造题 参考From 代 ...

  7. CodeForces 103D Time to Raid Cowavans 询问分块

    Time to Raid Cowavans 题意: 询问 下标满足 a + b * k 的和是多少. 题解: 将询问分块. 将b >= blo直接算出答案. 否则存下来. 存下来之后,对于每个b ...

  8. light 1205 - Palindromic Numbers(数位dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1205 题解:这题作为一个数位dp,是需要咚咚脑子想想的.这个数位dp方程可能不 ...

  9. bzoj 1588: [HNOI2002]营业额统计(splay入门)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1588 题解:这题如果用普通的bst的话是可以过时间差不多4s左右如果用splay的话是14 ...

  10. CodeForces - 1118 F2 Tree Cutting

    题目传送门 题解: 先注意到一定存在k种颜色,切成k个块, 然后要求每个块内的颜色都一样,所以可以发现同一种颜色一定在同一个块内,故任意2个相同颜色的最短路劲上的点的颜色都是该颜色. 我们可以先把任意 ...