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著,杨涛.王建桥等译,人民邮电出版社. 学到这的时候,我发现一个问题:学习过程中,相当一 ...
随机推荐
- [Mysql] GroupBy 分组,按天、周、月
简单说明: 最近在做报表功能的时候,需要将数据按天.周和月进行合并展示(数据记录都是按天20190701). 正文: 说明:数据表中date都是int类型:如 20190701 一.按天 SELECT ...
- ES6之模块化导入导出
1.概述 在js的历史上一直没有模块(module)体系,无法将一个大程序拆分成相互依赖的小文件,再用简单的方法拼装起来,这对开发大型的.复杂的项目形成了巨大障碍. 在 ES6 之前,社区制定了一些模 ...
- 悲观锁 vs 乐观锁 vs Redis
企业面对高并发场景采用的方案. 比如 产品抢购高并发时的超发现象. 1 悲观锁悲观锁 需要数据库本身提供支持(Oracle和MySQL都是支持的).实现细节:当前 数据库事务 读取到产品后, 就将目标 ...
- FEL,项目实装记录
FEL,即Fast EL ,版本0.8,具体内容我就不贴了,自行百度 实装遇到的问题: Spring Boot 打包后无法进行表达式编译. 根据百度以及源码,确定这东西是在用JavaCompiler将 ...
- Trace 2018徐州icpc网络赛 思维+二分
There's a beach in the first quadrant. And from time to time, there are sea waves. A wave ( xx , yy) ...
- 背包形动态规划 fjutoj2347 采药
采药 TimeLimit:1000MS MemoryLimit:128MB 64-bit integer IO format:%lld Problem Description 辰辰是个天资聪颖的 ...
- CF - 1110F Nearest Leaf
题目传送门 题解: 先用题目给定的dfs方式得到dfs序,记录下出入的dfs序. 很明显可以得知的是,以u为根的子树的dfs序在 in[u] - out[u] 的范围之内. 将每个询问先全部存到对应的 ...
- 中南林业科技大学第十一届程序设计大赛 有趣的二进制 牛客网 java大数的一些方法
链接:https://www.nowcoder.com/acm/contest/124/C来源:牛客网 题目描述 小新在学C语言的时候,邝老师告诉他double类型的数据在表示小数的时候,小数点后的有 ...
- SpringBoot发送邮箱验证码
一.开启QQ邮箱服务 (1)登陆QQ找到设置,点击账户 (2)往下拉,开启POP3/SMTP服务和IMAP/SMTP服务 当开启IMAP/SMTP会有一串密文密码,保存起来后面要用到 二.spring ...
- 【Offer】[52] 【两个链表的第一个公共结点】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入两个链表,找出它们的第一个公共结点.下图中6为公共结点:  牛客网刷题地址 思路分析 如果两个链表有公共节点,那么公共节点出现在两 ...