1.JavaScript是一种基于对象、客户端浏览器、事件驱动的脚本语言。Composition:Dom,Bom,ECMAScript1.DOM->DocumentObjectModel封装了文档操作相关的API2.BOM->BrowserObjectModel封装了浏览器操作相关的API3.ECMAScript->核心语法:常量,变量,数据类型,运算符、流程语句、函数、内置对象等。2.DOM介绍什么是DOM?(documentobjectModel)DocumentObjectModel,用于表示和操作html或xml文档内容的基本API。当页面加载时,浏览器会创建页面的文档对象模型DOM,DOM模型被构建为对象树(DomHtmlTree);DOM包含所有的html标签元素、文本字符串,甚至html注释;利用DOM中的属性和方法,使程序具有动态访问和更新文档的内容、结构和样式的能力,大大增强了页面的交互性;DOM有什么用?1.页面中的所有HTML元素都可以通过DOM操作来改变2.页面中所有的HTML属性都可以通过DOM操作来改变3.页面中所有的CSS样式都可以通过DOM操作来改变4.页面中的所有事件都可以通过DOM操作进行反应;DOM树介绍DOM将层次结构中的每个对象称为一个节点。这个层级可以看做是树状结构,就像我们的目录一样。根目录下有子目录,子目录下有子目录。DOM节点类型及相关属性DOM树中的所有对象都是节点,如:文档节点、元素节点、属性节点、文本节点、注释节点等;节点相关属性如下:nodeName获取节点名称,只读nodeValue获取节点内容(适用于文本节点和注释节点)nodeType获取节点类型,只读节点访问节点树中的节点有相互之间的等级关系。节点类型可以通过属性nodeType来判断。那么根据节点类型,DOM树可以分为以下两种类型:1、包含所有类型的标签、属性、文本、评论等的DOM树可以称为节点树;2.包含标签的类型可以称为元素树。元素树图更简洁,查找操作更快捷。因此,除非必要,一般都使用元素树来进行操作。DOM树中所谓的节点关系就是父子关系、兄弟关系、祖孙关系;对应的节点如下:*父节点(parentnode)父节点可以有任意多个子节点*子节点(childnode)子节点只能有一个父节点*兄弟节点(siblingnode)有相同的父节点同级*根节点(rootnode)一个html文档一般只有一个根节点,根节点没有父节点,它是最顶层节点*祖先节点包括子节点的节点可以称为祖先节点,包括parentnodes*Descendantnodes一个节点包含的所有节点都称为后代节点,包括子节点节点级别访问*parentNode获取当前节点的父节点*childNodes获取当前元素节点的所有子节点*firstChild获取的第一个子节点当前元素节点*lastChild获取当前元素节点的最后一个子节点*previousSibling获取当前节点的上一个兄弟节点*nextSibling获取当前节点的下一个兄弟节点元素层次访问(acElement元素节点之间的cess)*firstElementChild,lastElementChild类似于firstChild和lastChild,返回类型仅为Element类型,忽略文本、注释、空白节点(IE8及以下返回undefined)*nextElementSibling,previousElementSibling类似于nextSibling和previousSibling,return类型仅为Element类型,忽略文本、注释、空白节点(IE8及以下返回undefined)*children获取当前元素所有子元素的集合*childElementCount子元素个数*Element也可以访问parentNode属性,但是返回的结果是Elment类型```三、DOM操作创建节点*document.creatElement("tagName")(最常用的)创建一个元素节点并返回一个元素对象*document。creatTextNode("数据")创建创建一个新的文本节点并返回新创建的文本节点*document.createAttribute("attributename")创建一个具有指定名称的属性并返回Attr对象属性追加插入节点*element.appendChild(newnode)是最后一个childofthespecifiednodeAddanewchildnodeafterthenodelist*element.insertBefore(newnode,oldnode)在现有子节点之前插入一个新的子节点删除、替换和克隆子节点*element.removeChild(node)fromthechild节点列表删除一个节点。如果删除成功,该方法返回删除的节点;失败则返回null*element.replaceChild(newNode,oldNode)实现子节点(对象)的替换,返回被替换对象的引用*element.remove(index)用于从drop中移除options-downlist(参数index,指定要删除的选项的索引号)(删除元素本身)*注:如果不加参数,可以用来移除当前元素如:document.getElementById('分”)。消除();
