想想还是把标题改成复习好点,因为书中的知识点挺多而且细,不好概括,凡是觉得重要的我都想提一提把code重新打一遍。继续(二)的内容,接下来该是从DOM删除一个节点:NodeParent.removeChild(NodeToRemove);
书中removeChild为基础封装了两个函数:
1 //从DOM中移除一个节点 2 function remove(elem) { 3 if(elem) 4 elem.parentNode.removeChild( elem); 5 } 6 7 //清空一个元素的所有子节点 8 function empty(elem) { 9 while(elem.firstChild) { 10 remove(elem.firstChild); 11 } 12 }
DOM部分算是复习结束,接下来是Event部分。同样是javascript开发中一个很核心的东西。说到事件这里有个重要的概念,javascript的事件分两个阶段:capturing and bubbling phase,称为事件的捕获和冒泡阶段。
来个能说明问题的例子:
1 <div id="content"> 2 <ul class="links"> 3 <li> 4 <!-- 我们点击了这个链接 --> 5 <a href="/">Home</a> 6 </li> 7 <li> 8 <a href="/about/">About</a> 9 </li> 10 </ul> 11 </div>
首先是capturing phase:假设我们单击了一个链接,事件的激发顺序:
document的click处理事件-->body的click处理事件-->div的click处理事件,以此类推最后到达那个我们点击的a,然后进入bubbling phase,顺序和capturing phase相反。
有时我们要取消事件冒泡:
function stopBubble(e) {
//如果默认传入了event对象,那么这是非IE浏览器
if(e && e.stopPropagation )
//因此支持W3C标准的stopPropagation()方法
e.stopPropagation();
else
//否则我们要用IE取消事件冒泡的方式
window.event.cancelBubble = true;
}
对于浏览器的默认行为我们在开发过程中也要注意,比如一个用户表单,当用户输入内容,并按下提交按钮,如果表单内容所填有误的话,就应该给用户指出错误,不给予提交。阻止浏览器的默认行为:
function stopDefault(e) {
//阻止默认的浏览器行为(W3C)
if( e && e.preventDefault) e.preventDefault();
else window.event.returnValue = false; //IE中采用的方法
return false;
}
接着作者讲述了些开发网页的原则,比如在去掉css和javascript的前提下,看看自己的网页是否还能良好的导航与浏览,你的html标签是否具有良好的语义,css和javascript有没有跟HTML DOM进行分离等等..我觉得在CSS方面有本书很不错,《超越CSS:web设计精髓》。