dom
事件加载顺序
浏览器加载顺序
加上onload函数之后,script标签就可以写在最后面了
响应函数 onclick那种要时间发生才会被触发,所以都会后执行,后面的代码会先执行这样。。
后面的aa会先被输出
查找
要注意通过id获取是获取一个,其他是获取一组!所以其他是elements,只有id是element,不是复数!
getElementsByTagName
这里就很明显了!我用的getElementsByTagName返回的是一个HTMLCollection,一个类数组,虽然我只有一个ul节点,但是还是返回一个类数组,所以用不了appendChild,会出错说没有这个属性(HTMLCollection就是没有哇(((。
返回的是:
但是可以用for来遍历&用length来获取这个类数组的长度
可以用for循环进行遍历但是不能使用for循环修改里面的内容!可以输出,应该跟python的for差不多,只能读不能改
getElementByName()
查询
返回的是nodelist
是类数组对象,不是数组对象!
这个有点不太懂。。。
childenode
获取的是所有子节点 空格+元素!
children
previousSibling&nextSibling
都是按节点计算的,把空格也当做一个文本节点,所以说会返回多余的空格
value
回调函数
回调函数就是将函数作为别的函数的参数,高阶函数就是接收回调函数作为参数的函数,
如下 sq是回调函数,f是高阶函数。
查询
使用下面的querySelector替代
返回的是nodelist!
增删改查
修改css
这个用window用的好妙!利用没有的对象的属性返回undefined和隐式类型转换成false做了一个小的判断来适配浏览器,真的不错
offsetLeft是算上边框的元素与定位父元素的距离!
事件
冒泡
取消冒泡
委托
事件绑定
ie8以下不支持
这样两个都会出!
补充下回调函数 ie不知道为什么测不了 不考虑ie适配了 两个callback调用的对象都是ul
ie适配:
事件的捕获&冒泡
事件的捕获就是找,一层一层的找,找到那个事件源为止(默认是从window对象开始找)。
事件的冒泡就是从事件源一直往上走,走到最大的父元素。
只有ie8及一下支持setCapture,ie9,11也不支持,我就说怎么试了半天火狐跟Chrome都不行。。。
有setCapture就要有releaseCapture,不然就会一直占着焦点
onmousewheel适配问题
ie8里面event对象没有preventDefualt属性,兼容的时候直接有就执行,没有就跑其他derhaha
补充一下那个加法
运算是一步一步来的,遇到数字就是直接计算,然后遇到字符串才是字符串的连接。
不是35px哦!