DOM和BOMDOM概念DOM:DocumentObjectModel文档对象模型。DOM作用:操作页面中的元素。顶级对象是文档,它指的是HTML或XML文件。HTML侧重于显示数据,XML侧重于存储数据,XHTML编写HTML代码,遵循XML规范。每个HTML文件都可以看成是一个文档对象,其中所有标签的层级关系可以看成是一个树状结构图,树状图。页面上的所有内容都是一个节点:标签节点、属性节点、文本节点。IE8会忽略空白节点节点属性nodeType,如果是标签,则值为1;如果是属性,则值为2;如果是文本,则值为3nodeName如果是标签,则值为大写的标签名称;如果是属性,则值为小写属性名;如果是文本,则值为#textnodeValue;如果是标签,则值为空;如果是属性,则值为属性值;如果是文本,value就是文本内容页面中的label,label就是元素,元素可以看成是Objects,labels也是节点。节点大于元素。根元素:页面中最外层的标签文档元素:文档中的第一个元素,HTML文档元素是第一个写法的绑定和解绑定对象.on+"事件名称"=事件处理函数对象.on+"事件名称"=null第二种写法第三种写法object.attachEvent("事件名",namedfunction);object.detachEvent("事件名",命名函数名);另一个元素B嵌套在事件冒泡元素A中,内层元素B和外层元素A注册同一个事件,如果内层元素B的事件被触发,外层元素A的事件也会自动触发.两种防止事件冒泡的方法window.event.cancelBubble=true或e.stopPropagation();事件事件捕获阶段、事件目标阶段、事件冒泡阶段三个阶段事件阶段有一个属性,需要通过事件参数对象.eventPhase得到的属性值是:1->捕获阶段2->目标阶段3->冒泡阶段e.type获取当前触发事件的事件类型false值由内向外,一般为falsedv3===2===clickdv2===3===clickdv1===3===click真值由外向内dv1===1===clickdv2===1===clickdv3===2===clickDOM层DOM0初级DOM1指定节点Node的类型,一般使用DOM1DOM2添加了一些方法,但是很多浏览器不支持DOM3大多数浏览器不支持全局变量和隐式全局变量全局变量不会被删除,隐式全局变量会被删除innerText和innerHTML设置文本内容时usingboth设置标签内容,innerText设置标签内容,显示为标签+文本。标签实际上被转义了。innerHTML设置标签内容,显示就是效果。如果要设置文字,应该用谁两者都可以,如果要有标签效果,使用innerHTML获取标签中的文字内容,可以同时使用innerText和innerHTML,如果要获取标签和元素中的文本内容,应该使用innerHTMLinnerText和textContentinnerText:Google支持,低版本Firefox不支持,Firefox高版本支持,IE8支持textContent:Google支持,Firefox支持,IE8不支持当浏览器不支持某个属性,属性的类型是undefinedclassNamehtml标签中的class属性,在js中是关键字,不能直接这样,object.class="value";这种写法是错误的。应该这样写:object.className="value";object.style。属性名称=“值”;div.style.backgroundColor="红色";object.className="值";div.className="cls";定义属性获取自定义属性的值对象.getAttribute("属性的名称");返回值为属性的值设置自定义属性的值对象.setAttribute("属性的名称","value");removeAttribute,getAttribute,setAttribute三个方法不仅可以操作元素的自定义属性和值,还可以操作元素自身属性的隐藏方法如果style的属性在style属性中,则设置样式如果style属性在style标签中设置,则无法直接获取。得到12个节点元素。<脚本>console.log(zy$("uu").childNodes);console.log(zy$("uu").children);//推荐使用console.log(zy$("uu").parentNode);//推荐使用console.log(zy$("uu").parentElement);控制台.log(zy$("uu").firstChild);console.log(zy$("uu").firstElementChild);console.log(zy$("uu").lastChild);console.log(zy$("uu").lastElementChild);console.log(zy$("uu").previousSib灵);console.log(zy$("uu").previousElementSibling);console.log(zy$("uu").nextSibling);console.log(zy$("uu").nextElementSibling);创建元素的三种方式第一种是document.write第二种是object.innerHTML=”labelcodeandcontent”第三种是document.createElementTimersetInterval()参数:代码参数:时间----1000毫秒---1秒返回值:定时器的id值执行过程:页面加载完成后,会执行其中的代码while,并且里面的代码隔一段时间会再次执行,会重复执行clearInterval(timeId);//清除定时器setTimeout()参数:代码参数:时间----1000毫秒-1秒返回值:timer的id值执行过程:页面加载完成后,会在一段时间后执行代码,一段时间后,里面的代码只会执行一次clearTimeout(timeId2);//清除三者majorseriesoftimersoffset系列offsetLeft:元素相对于左边的水平坐标offsetTop:元素相对于顶部的垂直坐标offsetWidth:元素的宽度,带边框offsetHeight:元素的高度,取值borderoffsetseries得到的就是数值型offsetWidth(offsetHeight)得到的元素本身的宽度(height)+元素边框的宽度(height)。如果父元素不在文档流中,子元素此时的一级元素的offsetLeft得到的是相对于父元素的padding+自身的margin。如果元素本身脱离了文档流,此时的offsetLeft获取自己的left+自己的marginscroll系列content为元素的宽度,无边框scrollHeight:内容的实际高度,无内容为元素的高度,无边框clientX:可见区域的横坐标clientY:可视区域的纵坐标areaclientWidth:可视区域的宽度clientHeight:可视区域的高度BOM概览浏览器windo中的顶层对象w、页面中的顶层对象文档页面中的所有内容都属于window,变量属于window,函数属于window因为页面中的所有内容都是window,所以window可以省略。系统对话框alert()//在不同的浏览器中表现不同confirm();//true为确认,false为取消参数1:地址(内部地址,外部地址)参数2:打开方式:self是在当前页面打开,blank是在新标签页打开参数3:代码很多window.close()关闭窗口Window.locationobjectlocation相当于浏览器的地址栏,可以将url解析成独立的片段。window.navigator对象的一些属性window.navigator可以获取客户端(浏览器)的一些信息:userAgent用户当前浏览器信息平台用户系统信息(不准确)Window.history对象历史管理:返回:history.back()history。go(-1)Forward:history.forward()history.go(1)运行后生成历史
