Javascript注意点
Javascript注意点
-
在img标签中的src如果为相对路径, 但是在js获取的时候会转为全路径
-
候选框中, 在执行onclick之前, 会由于html的特征先设置checked属性
-
为a标签添加onclick实现, 要注意a的默认点击事件, 返回false中断事件冒泡
-
标签自定义属性
- 使用getAttribute获取
- 使用setAttribute设置
- 使用removeAttribute删除属性
-
事件
- onclick
- onfocus
- onblur
- onmouseover: 移入, 会触发冒泡
- onmouseout: 移出, 会触发冒泡
- onmouseup 鼠标按键放开时触发
- onmousedown 鼠标按键按下触发
- onmousemove 鼠标移动触发
- onkeyup 键盘按键按下触发
- onkeydown 键盘按键抬起触发
- onload:
- 页面加载完毕的时候, css, js全部下载完毕之后
- onunload:
- 关闭页面的时候, 这时不能使用alert等对话框, window对象被冻结
- onmouseenter
- onmouseleave: 移入, 不会触发冒泡
- onmouseover: 移出, 不会触发冒泡
-
JS中修改样式
- 使用style属性
- 使用className属性
-
<a href="javascript:void(alert('hello'))"
>- void是运算符, 永远返回undefined, 但是会执行void中的代码
-
API
children
: 返回的是元素, 不会再递归提取childNodes
: 会递归提取, 所有返回的会比children
多很多, 要达到和children
一样的效果, 需要对每一个node判断nodeType === 1
, 为1就是元素节点hasChildNodes
: 判断是否有子节点nextSibling
: 下一个兄弟节点previousSibling
: 上一个兄弟节点nextElementSibling
: 下一个兄弟元素previousElementSibling
: 上一个兄弟元素- 由于浏览器兼容问题, 一般不使用元素节点的函数, 而是使用节点的函数, 接着判断nodeType === 1来获取元素, 可以将其封装成为一个函数
addEventListener('click|blur|so on', function, false)
: 另外一种事件注册方式removeEventListener('click|blur|so on', function, false)
: 另外一种删除事件的方式insertBefore
appendChild
-
事件对象
e.target
: 真正触发事件的对象e.currentTarget
: 事件处理函数所处在的对象e.type
: 返回的是字符串, 如'click', 'mouseover', 'mouseout'等事件名- 一般采用
e = e || window.event
获取事件对象 - 一般采用
target = e.target || e.srcElement
获取事件源对象 e.pageX, e.pageY
: IE8之前不支持e.clientX, e.clientY
: 都支持,pageX = clientX + 滚动距离
pageX = clientX + scrollLeft
pageY = clientY + scrollLeft
e.keyCode
-
对话框
- alert
- prompt: 返回用户输入
- confirm: 返回true或者false
-
间隔执行
- setTimeOut: 隔一段时间执行, 只执行一次
- setInterval: 每隔一段时间执行, 重复执行
- clearTimeOut
- clearInterval
-
地址
- location
reload(true)
: 强制刷新href=
: 修改地址replace(href)
: 修改地址, 但是不记录到历史记录中
- location