《 Head Rush Ajax》website: http://www.headfirstlabs.com/books/hrajax/
document对象可以让你的JavaScript访问Web浏览器的DOM树。可以把<html>看作树的根。
getElementById()通过id属性找到页面中的元素。var mananger = document.getElementById("Mg").value;
documentElement属性,获取HTML文档的<html>根元素    var htmlElement = document.documentElement;
getElementByTagName()取得某个名字的所有节点,返回一个数组,必须用循环处理这个数组内的每个元素以取得特定元素。
var allDivs = document.getElementByTagName("div");   var firstPara = document.getElementByTagName("p")[0];
createElement() createTextNode()增加元素和文本。
var myImage = document.createElement("img");
var favshows = document.createTextNode("24 and lost");
DOM中有文本节点对象(标签之间的文本)和元素节点(标签),他们都是一个个节点,可以通过一个节点的parentNode,firstChild,lastChild获取相关节点,以及childNodes节点取得一个节点的全部子节点(是一个数组)
DOM树内的一切都是节点,包括标签的属性id、name等,元素和文本时特殊类型的节点,可以用nodeName取得节点名字,用nodeValue取得节点值。
元素节点有名字但是没有值,文本节点没有名字但是有值。
可以使用下面的条件语句判断:(部分浏览器不认识Node这个类,导致该方法不能运行)
if (someNode.nodeType == Node.ELEMENT_NODE){
//something done to ELEMENT_NODE
}else if(someNode.nodeType == Node.TEXT_NODE){
//文本节点
}
<script type="text/javascript" src="top5.js"> </script> //中间的空格千万不能忘记
JavaScript中的onclick和html页面中使用的onClick没有差别,写一个方法来负责事件处理器的设定,会比较灵活,而且可以多次调用这个方法。注意其中的大小写的差别。
<body>有个事件处理器,名为onload(),一旦页面被加载就立刻运行某个JavaScript函数。
在javascript函数中,可以通过使用this关键字来让你知道DOM树中的哪个节点调用此函数。
将一个元素加入另一个元素中。 div.replaceNode(img, img1):用要加入节点img取代现有节点img1
div.insertBefore(img,img3): 在某个子节点之前插入一个节点
div.appendChild(img):在所有的子节点最后附加一个节点。
表单中调用JavaScript函数,注意函数后面的括号和分号。<input type="button" value="Start Over" onClick="startOver();"/>
可以使用JavaScript程序代码查看甚至改变DOM树,你对DOM的改变会自动反应到浏览器所呈现的画面上。你也可以利用JavaScript为DOM树加入CSS样式和JavaScript事件处理器。

top5.js:
function addOnClickHandlers(){
var cdsDiv = document.getElementById("cds");
var cdImages = cdsDiv.getElementsByTagName("img");
for (var i = 0; i<cdImages.length; i++){
cdImages[i].onclick = addToTop5;  //为所有图片加上事件处理   
}   
}

function addToTop5(){
//将一张CD加入TOP 5
var imgElement = this;  //一旦函数执行,this指向用户onclick的对应图片<img>元素
var top5Element = document.getElementById("top5"); //取得要加入图片的地方
var num = 0; //统计添加的图片数量

for(var i = 0; i<top5Element.childNodes.length; i++){//遍历元素的每一个子元素
if(top5Element.childNodes[i].nodeName.toLowerCase() == "img"){
num++;  //统计元素中img元素的数量
}
}
if (num >= 5){//当图片数量超过5时,提醒。
alert("You already have 5 CDs. Click \"Start Over\" to try again.");
return;
}
top5Element.appendChild(imgElement);   //加入图片
imgElement.onclick = null;  //对于已经加入的图片,删除其事件处理,以免重复加入一幅图片

var newSpanElement = document.createElement("span"); //创建一个新的span元素
newSpanElement.className = "rank";  //给元素指派CSS类
var newTextElement = document.createTextNode(num+1);//创建次序文本对象
newSpanElement.appendChild(newTextElement);  //将文本添加到span的最后
top5Element.insertBefore(newSpanElement,imgElement); //在图像的前面插入新建的span元素
}
function startOver(){
//重新排序TOP5
var top5Element = document.getElementById("top5");
var cdsElement = document.getElementById("cds");//获取放图片的cds元素盒子
while (top5Element.hasChildNodes()){
var firstChild = top5Element.firstChild;
if(firstChild.nodeName.toLowerCase() == "img"){//依次将top5中的图片放入cds盒子中
cdsElement.appendChild(firstChild);
}else{
top5Element.removeChild(firstChild);//用来移除其他的子节点
}       
}   
addOnClickHandlers();//重新激活所有图片的事件处理,把null改为addToTop5
}

转载于:https://www.cnblogs.com/aquar/archive/2010/04/15/3451467.html

head rush ajax chapter4 DOM相关推荐

  1. head rush ajax chapter1 Ajax

    Head Rush Ajax 本书特点也是好书的特点: 1.多用图表 2.以对话的形式描述 3.用不同的方式重复  4.做活动,做事情时的学习效果比读东西的效果更佳,把习题变成挑战 5.用故事而不是书 ...

  2. ajax与DOM的使用,AJAX和DOM的运行经验

    AJAX和DOM的运行经验 更新时间:2007年03月07日 00:00:00   作者: 被AJAX中DOM的操作郁闷了好几天,今天总算搞明白了,自学就是苦啊,苦的一把鼻涕一把泪的, 把教训些出来, ...

  3. 用ajax+js+dom+php+mysql,方百度goole的分页~~~~~~~~哦!

    思路: 分页的实现逻辑 1.在mysql中如何查询区间数据   limit 起始行,要查询的行数 2.什么是分页   当我们的数据量比较大时候,一页显示不了就分页显示,可以增加用户的体验 3.实现分页 ...

  4. ajax更改dom,javascript – 用Ajax响应替换DOM节点

    我有一个ajax响应,看起来像这样: some other text 我想用resp替换下面的element1: 所以在替换后我会得到: some other text 我尝试了replaceChil ...

  5. Ajax(3)--DOM操作HTML 你忘记了吗?

    对应的HTML页面程序的代码如下所示.在该程序中除了与Ajax相关的程序基本框架之外,读者需要特别关注一下使用DOM操作HTML文档中对应元素的方法. 源程序名称:main.htm <html& ...

  6. ajax中dom,在(jQuery)ajax请求中获取当前脚本DOM对象

    涉及两个步骤简单的解决方案: 1)找出哪些元素脚本标签是 2)发现,元素 的代码中的前一个兄弟: var scripts = document.getElementsByTagName("s ...

  7. ASP.NET AJAX学习记要(2)-下手之DOM

    要学习DOM,那什么是DOM?为什么要学习DOM?DOM是文档对象模型.借用网站w3pop.com上的一段话:["W3C文档对象模型(DOM)是一个能够让程序和脚本动态访问和更新文档内容.结 ...

  8. (九)JS-WEB-API(DOM、BOM、事件、Ajax、存储)【每个工程师必须熟练掌握的技能】

    JS-WEB-API 提问 DOM BOM 事件 Ajax 存储 从JS基础知识到JS-WEB-API JS基础知识 JS-WEB-API DOM(Document Object Model) DOM ...

  9. JavaScript/Ajax/JQuery知识点(BOM/DOM/ScriptEngine/JS引擎),JSCore

    捋顺JavaScript底层知识,重点讲解如原型.作用域.执行上下文.变量对象.this.闭包.按值传递.call.apply.bind.new.继承等难点概念??   JS中的继承?JS的原型模式, ...

最新文章

  1. 关于前端开发的相关资料及例子
  2. Android SQLite调试
  3. [LeetCode]: 169: Majority Element
  4. BS版代码生成器 简介
  5. 7步让你get首个数据科学实习
  6. restfull知识点
  7. 运用HTML5+CSS3和CSS滤镜做的精美的登录界面
  8. 总裁徐雷“接管”京东 但拍板的仍是刘强东
  9. retinex算法小感
  10. python怎么读单词和古文,用文言文写Python
  11. 阿里研究员吴翰清:世界需要什么样的智能系统?
  12. 阿里数据研发工程师实习生面试经历
  13. Crucible安装使用
  14. 华硕重装后进入bios_华硕电脑重装系统后开机直接进入BIOS原因分析及解决方法...
  15. 什么是企业邮箱?企业邮箱有什么用途?
  16. OpenWrt设置修改IP地址
  17. 缺省值和null值的区别和作用
  18. 提高Python编程的效率技巧你知道哪些?收藏必备系列,阿里表哥推荐!Python高效编程技巧
  19. 腾讯敏感词汇大全_有创意的饰品店名,独一无二的饰品店名大全
  20. lista=['a','abc','d','abc','fgi','abf'],寻找列表中出现次数最多的第一个 字母,出现了几次

热门文章

  1. nginx php7提速,nginx+php7-fpm 性能提升几倍跟踪实践结果并优化
  2. 图书漂流系统的设计和研究_研究在设计系统中的作用
  3. axios源码中的10多个工具函数,值得一学~
  4. 怎样开发一个 Node.js 命令行工具包
  5. 可能是全网首个前端源码共读活动,诚邀你加入一起学习
  6. 如何利用 webpack 在项目中做出亮点
  7. https://zeplin.io/ 设计图标注及切图
  8. python面向对象基础语言进阶
  9. EasyMock学习笔记
  10. 子进程无法从标准输入读取数据