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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章