没有顺序 -
想起哪里 看到哪里记哪里 --
——
JS原生方法:
onmouseover() 入
onmouseout() 出
元素节点:
a.childNodes;//获取a的全部子节点;
a.parentNode;//获取a的父节点;
a.nextSibling;//获取a的下一个兄弟节点
a.previousSibling;//获取a的上一个兄弟节点
a.firstChild;//获取a的第一个子节点
a.lastChild; //获取a的最后一个子节点
firstElementChild获取第一个子节点
使用firstElementChild来获取第一个子元素的时候,这就没有firstChild的那种情况了 他并不会匹配换行和空格信息
lastElementChild获取最后一个子节点
类似
获取上一个兄弟节点
previousSibling和previousElementSibling。
获取下一个兄弟节点
nextSibling和nextElementSibling
如果要使用childNodes就必须进行必要的过滤。通过正则表达式式取掉不必要的信息。下面是过滤掉
//去掉换行的空格
for(var i=0; i<b.length;i++){
if(b[i].nodeName == "#text" && !/s/.test(b.nodeValue)){
document.getElementById("test").removeChild(b[i]);
}
}
//打印测试
for(var i=0;i<b.length;i++){
console.log(i+"---------")
console.log(b[i]);
}
//补充 document.getElementById("test").childElementCount; 可以直接获取长度 同length
运算符
·运算符优先级
类型转换规则
!:隐式类型转换 ---会将对象转换,首先转布尔类型 ,对象转布尔值都是真 true
点击A标签的子集不跳转,阻止默认行为
随机数生成公式:
Math.floor(Math.random()*(max-min+1)+min);
//
//加载页面时执行一次
changeMargin();
//监听浏览器宽度的改变
window.onresize = function(){
changeMargin();
}
=======================================================================
定时器:
setInterval 有缺点
使用setInterval时,某些间隔会被跳过
;可能多个定时器会连续执行
;
setTimeout模拟setInterval
setTimeout(function () {
// 任务 setTimeout(arguments.callee, interval);
}, interval)
警告:在严格模式下,第5版 ECMAScript (ES5) 禁止使用 arguments.callee()。当一个函数必须调用自身的时候, 避免使用 arguments.callee(), 通过要么给函数表达式一个名字,要么使用一个函数声明.
function fun() {
//....do something;
setTimeout(fun, 1000);
}
===============================================掘金: https://juejin.im/pins/recommended
关于各种宽高:
页可见区域宽: document.body.clientWidth;
网页可见区域高: document.body.clientHeight;
网页可见区域宽: document.body.offsetWidth (包括边线的宽);
网页可见区域高: document.body.offsetHeight (包括边线的宽);
网页正文全文宽: document.body.scrollWidth;
网页正文全文高: document.body.scrollHeight;
网页被卷去的高: document.body.scrollTop;
网页被卷去的左: document.body.scrollLeft;
网页正文部分上: window.screenTop;
网页正文部分左: window.screenLeft;
屏幕分辨率的高: window.screen.height;
屏幕分辨率的宽: window.screen.width;
屏幕可用工作区高度: window.screen.availHeight;