最页面最前面加上“use strict”,启动es5严格模式
es5 不在兼容es3的一些不规则语法,不能使用
arguments.callee,caller,with (){} : 可以改变作用域链,括号中的对象会成为作用域链的最顶端,但是会降低运行效率 var obj = { name : "obj" } var name = "window"; function test() { var age = 23; var name = "scope", with(obj){ //该变了作用域链,此时obj位于最顶端 console.log(name);// obj console.log(age);// 23 } } test(); with 还可以简化代码 with(document){ write('a'); } //此时代码等同于 document.write('a'); 局部this必须被赋值,赋值的是什么就是什么拒绝重复的属性和参数选择器
以下都是document下的方法 取出的都是一组。如果要取一个需要加下标
getElementById(),获取元素idgetElementsByTagName():获取标签名getElementsByClassName(): 通过类名获取getElementsByName():通过name获取,input,img,iframe可以使用 这个方法不经常用,选择的不是实时的,选择之后再更改没有作用querySelector():可以写css 选择器,选出的是一个,不是一组querySelectorAll():选出的是一组遍历节点树(所有类型的结点都会遍历)
parentNode :父节点,最高的是document childNodes : 所有子节点 firstChild :第一个子节点 lastChild :最后一个子节点 nextsibling : 下一个兄弟节点 previousSibling : 前一个兄弟节点
节点类型
元素结点 — 1 属性结点 — 2 文本结点 — 3 注释结点 — 8 document — 9 后面的数字代表的是该类型返回的 nodeType
基于元素节点树的遍历(只会遍历元素结点) IE9以下不兼容
parentElement: 返回元素父节点,children: 元素子节点node.childElementCount:子节点个数,完全等同于children.lengthfirstElementChild:第一个元素子节点lastElementChild:最后一个元素子节点nextElementSibling:下一个元素子节点previousElementSibling:前一个元素子节点结点的四个属性
nodeName: 元素的标签名,以大写形式表现,只读 nodeValue: 只有文本结点text和注释结点comment有,可读写, 取得其内容 nodeType: 可以获取节点类型,只读 attributes: 该节点的属性节点的集合 Node.hasChildNodes(); 判断有没有子节点
<div id="abc" class="sss"> </div> //div.attributes[0].value //"abc" //div.attributes[0].name // id //此方法后期会有优化document.creatElement(); //创建元素结点(标签),在js手中,不在页面中 document.creatTextNode();//创建文本结点 document.creatComment(); //创建注释结点 document.creatDocumentFragment(); //创建文本碎片结点
PARENTNODE.appendChild(); //类似于push方法,把新子节点添加到指定节点,也可是剪切操作(document.body是插入到页面中) PARENTNODE.insertBefore(a,b);//a插入在b之前
parent.removeChild(); //父节点移除子节点 child.remove(); //自己移除自己
parentNode.replaceChild(new,old);//用新的替换老的
Element结点的一些属性
innerHTML :改变内容,覆盖;可以写新标签;也可以获取内容 innerText :会覆盖结构;如果只有文本,可以使用
Element结点上的一些方法
ele.setAttribute(name, value); ele.getAttribute(name);//取行间属性的值
1.标准模式: document.documentElement.clineHeight (Width) 2.怪异模式:document.body.clineWidth
可以获取几何图形全部信息 返回一个对象,包括left,top,right,bottom,height,width等,但是height和width在老版本IE中不能实现 返回结果不是实时的
举个栗子:
2.查看元素尺寸
dom.offsetWidth 和 dom.offsetHeight:获取视觉上的尺寸,不包括marign dom.offestLeft 和 dom.offsetTop:对于无定位父级的元素,返回相对文档的坐标。对于有定位父级的元素,返回相对于最近的有定位的父级的坐标。 dom.offestParent:返回最近有定位的父级,没有返回null
scroll(0,10); //让滚动条滚动到10的位置,页面会向下
2.scrollBy(x,y); x,横向;y,纵向; 滚动累加,只要执行就可以动
scroll(0,10); //滚动到10的位置 scorll(0.10); //滚动到20的位置
