DOM一些易忘點

childNodes和children
在不同瀏覽器中對於內容的解釋有小差別
innerHTML和appendChild
innerHTML很萬金油,可讀又可寫(只要你想,網頁都能弄出來);appendChild更容易有結構性
createElement
非必要情況不要在創建的對象中寫樣式,常用寫法是在css文件中寫相關的類,
然後給這個對象添加這個類名(**.className = 'box'或**.setAttribute('class','box');),移除屬性用removeAttribute()
offset
offsetWidth =  width  + border  +  padding
offsetHeight同理
offsetLeft返回距離上級盒子(最近的***帶有定位***)左邊的位置
offsetLeft 從父級的padding 開始算    父親的border 不算
總結一下:  就是子盒子到定位的父盒子邊框到邊框的距離
offsetTop同理,並且是由代表標籤的變量調用
事件對象
對象事件對應的函數中添加event這個形參,爲了兼容性如下寫:
 var event = event || window.event;
 重要的幾個屬性:
 clientX、clientY……
scrollTop和scrollLeft
網頁被隱藏的距離,使用window對象調用
setInterval和setTimeout
前者有返回值,用於控制計時器的開/關,大部分計時器都不會讓其一直運行
一些需要調整兼容性的東西
scrollTop/scrollLeft、event、獲取標籤當前的屬性、input的輸入事件、
瀏覽器不支持getElementsByClassName情況下需要自己寫(使用GetElementsByTagName('*')+自定義數組)
不同瀏覽器獲取兄弟節點或子節點寫法有差異
獲得選中文字(window.getSelection().toString();||document.selection.creatRange().text;)
不同瀏覽器獲得屏幕寬度寫法不一樣、去除事件回溯寫法有差異
獲得事件產生源的ID:
var targetId = event.target ? event.target.id : event.srcElement.id;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章