一蔚出、全面操作DOM
1.DOM操作圖解
2.JavaScript組成
2.1核心(ECMAScript):描述了JS的語法和基本對象的定義規(guī)范
2.2文檔對象模型(DOM):處理網(wǎng)頁內(nèi)容的方法和接口撩荣。比如:頁面結構的增刪改查...
2.3瀏覽器對象模型(BOM):與瀏覽器交互的方法和接口削罩。比如:前進/后退、界面跳轉(zhuǎn)、彈窗...
3.DOM(document object model)文檔對象模型
DOM為文檔提供了結構化表示朝捆,并定義了如何通過腳本來訪問文檔結構;目的其實就是為了能讓js操作html元素而制定的一個規(guī)范懒豹;DOM樹的根統(tǒng)一為文檔的根--document芙盘。
3.1document內(nèi)置方法:
3.2節(jié)點:由結構圖中我們可以看到,整個文檔就是一個文檔節(jié)點脸秽;其中每一個HTML標簽都是一個元素節(jié)點儒老;標簽中的文字稱為文字節(jié)點,標簽的屬性稱為屬性節(jié)點豹储,一切皆是節(jié)點贷盲。
3.3節(jié)點的獲取
3.4節(jié)點的訪問:DOM的節(jié)點并不是孤立的,因此可以通過DOM節(jié)點之間的相對關系對它們進行訪問。
父級 parentNode:當前元素的上一級巩剖,必須是親爸爸铝穷,爺爺都不算。
兄弟節(jié)點
nextSibling 下一個兄弟的意思佳魔,在ie678里面是正常的曙聂;但是在谷歌、火狐等瀏覽器里面鞠鲜,默認的下一個兄弟是空格或者換行宁脊。
兼容性寫法:var next = div.nextElementSibling || div.nextSibling;
注意:一定先寫nextElementSibling,因為谷歌贤姆、火狐等是認識nextSibling榆苞,但是空格或換行是掉不出來元素的屬性的,所以會報錯霞捡。解決方案:優(yōu)先執(zhí)行nextElementSibling坐漏。
獲取第一個節(jié)點和最后一個節(jié)點
獲取所有孩子節(jié)點
注意:只能獲取兒子輩的,不能獲取孫子輩的
1.childNodes(W3C推薦使用)
nodetype檢測元素節(jié)點類型
2.children(IE出品)
3.5DOM節(jié)點操作(重點)
需求:在頁面的很多特效中碧信,元素節(jié)點是動態(tài)生成的赊琳。最常見的比如:輪播圖下面的小圓點,是根據(jù)圖片的張數(shù)動態(tài)生成的砰碴。這時候躏筏,我們需要用js動態(tài)操作DOM節(jié)點:創(chuàng)建、添加呈枉、刪除趁尼、克隆...
創(chuàng)建節(jié)點:document.createElement(“標簽名”)
添加節(jié)點:添加節(jié)點就是把創(chuàng)建好的節(jié)點放到某個地方
1.appendChild():a.appendChild(b);把b標簽放到a標簽的里面猖辫,并且是放到a標簽的最后面
2.insertBefore(插入的節(jié)點弱卡,參照節(jié)點);如果第二個參數(shù)為null則默認插入到后面住册,該參數(shù)不能省略。
刪除節(jié)點
1.removeChild():a.removeChild(b)瓮具;刪除a里面的孩子b節(jié)點
2.remove():a.remove()荧飞;把a節(jié)點直接刪除
克隆節(jié)點(cloneNode):用于復制節(jié)點,接受一個布爾值參數(shù)名党;true表示深復制(復制節(jié)點及其所有子節(jié)點)叹阔,false表示淺復制(復制節(jié)點本身,不復制子節(jié)點)传睹。
3.6標簽的屬性
getAttribute(“屬性”)
setAttribute(“屬性”耳幢,“值”)
removeAttribute(“屬性名”)
注意:以上寫法在IE6,7中不被支持,要做兼容睛藻;demo.className = "one";
3.7cssText:可以更改多個屬性設置
二启上、九宮格案例
1.九宮格算法分析
1.1利用控件的索引index計算出控件所在的行號和列號
1.2利用列號計算控件的x值
1.3利用列號計算控件的y值
三、內(nèi)置對象Date
1.目前js中常用的內(nèi)置對象
2.日期對象Date的基本使用
2.1聲明日期函數(shù):var date = new Date()店印;
2.2date對象常用方法
獲取日期和時間
四冈在、定時器
1、什么是定時器
在網(wǎng)頁中有很多效果都是自己運動的按摘;setInterval每隔一段時間會自動觸發(fā)重復執(zhí)行某一個操作包券;基本語法結構:window.setInterval("執(zhí)行的代碼串",間隔時間);
2.常見的使用形式
定時器的一個重要用途在于:它可以不斷刷新某個區(qū)域炫贤!意味著:這個區(qū)域不在初始化中執(zhí)行溅固,而是通過定時器進行喚醒,并且是有時間可控的兰珍。
3.自定義時間:var endTime = new Date(“2017/03/18 17:30:00”)
日期換算: