鑒于w3c所倡導(dǎo)的表現(xiàn)(CSS)和結(jié)構(gòu)(HTML)的分離,目前對(duì)于行為(Script)和結(jié)構(gòu)(HTML)的分離也被很多人所認(rèn)同,在網(wǎng)頁(yè)里盡量減少ID、Name等,而代之的是通過DOM及Script來獲取,進(jìn)而對(duì)其進(jìn)行行為的控制和操作。
考慮到兼容性,js獲取HTML對(duì)象的方法常用有三種: 1.document.getElementById(id) 2.document.getElmentsByTagName(TagName) 3.document.getElementsByClassName(class) 由于要盡量的減少ID和普遍性,第一種和第三種獲取方法就暫時(shí)先不考慮了,主要以第二種為例進(jìn)行js的操作。 本內(nèi)容重在下面的測(cè)試中,效果雖然相差不大,但原理是有區(qū)別的,重點(diǎn)看js部分的變化。 測(cè)試一: ![]() [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行] 增加一個(gè)父Div,div標(biāo)簽嵌套,重新獲取div ![]() [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行] 修改JS部分,通過ID獲取子div的內(nèi)容 ![]() [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行] 去掉父DIV的ID,全部用TagName來分離獲取 ![]() [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行] 將DIV換成ul和li,修改js,查看新的效果 ![]() [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行] 進(jìn)一步修改js,通過DOM節(jié)點(diǎn)來獲取對(duì)象,不過在IE和FF下你會(huì)看到兩種不同結(jié)果,原因是IE忽略了空格,而FF、oprea、safari、Chrome等會(huì)把空格也當(dāng)作一個(gè)節(jié)點(diǎn)來處理,所有在IE下你只能得到四個(gè)幾點(diǎn),而在其它瀏覽器中,你會(huì)得到9個(gè)節(jié)點(diǎn)。 ![]() [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行] |
|