在JavaScript中,节点分为很多种类型。DOM节点共有12种类型,但是常见的只有下面3种,元素节点、属性节点、文本节点。
在JavaScript中,可以使用nodeType属性来判断一个节点的类型。
不同节点的nodeType属性值? ??
节点类型 | node Type值 |
元素节点 | 1 |
属性节点 | 2 |
文本节点 | 3 |
获取元素,就是获取“元素节点(不是属性节点或文本节点)”。对于一个页面,想要对某个元素进行操作,就必须通过一定的方式来获取该元素,获取该元素后,才能对其进行相应的操作。
getElementById( ),也就是“get?element?by?id”,意思是通过id来获取元素。getElementById( )类似于CSS中的id选择器。
语法
document.getElementById("id名")
getElementsByTagName,也就是“get?elements?by?tag?name”,意思是通过标签名来获取元素。getElementsByTagName( )类似于CSS中的“元素选择器”。
语法
document.getElementsByTagName("标签名")
getElementsByClassName,也就是“get?elements?by?class?name”,意思是通过类名来获取元素。getElementsByClassName( )类似于CSS中的class选择器。
语法
document.getElementsByClassName("类名")
getElementsByClassName( )获取的是一个类数组。
querySelector( )和querySelectorAll( ),可以使用CSS选择器的语法来获取所需要的元素。
语法
document.querySelector("选择器");
document.querySelectorAll("选择器");
querySelector( )表示选取满足选择条件的第1个元素,querySelectorAll( )表示选取满足条件的所有元素。它们的写法和CSS选择器的写法是完全一样的。
document.querySelector("#main")
document.querySelector("#list li:nth-child(1)")
document.querySelectorAll("#list li")
document.querySelectorAll("input:checkbox")
语法
document.getElementsByName("name名")
由于一个页面只有一个title元素和一个body元素,因此对于这两个元素的选取,JavaScript专门提供了两个非常方便的方法:document.title和document.body。
语法
document.title=" "
document.body=" "
在JavaScript中,可以使用createElement( )来创建一个元素节点,也可以使用createTextNode( )来创建一个文本节点,然后可以将元素节点与文本节点“组装”成我们平常看到的“有文本内容的元素”。这种方式又被称为“动态DOM操作”,指的是使用JavaScript创建的元素。这个元素一开始在HTML中是不存在的。
语法
var e1=document.createElement("元素名"); //创建元素节点
var txt=document.createTextNode("文本内容"); //创建文本节点
e1.appendChild(txt); //把文本节点插入元素节点中
e2.appendChild(e1); //把组装好的元素插入已存在的元素中
在DOM中,每一个元素节点都被看成一个对象。可以像给对象属性赋值那样,给元素的属性赋值。来添加元素属性。
语法
var e1=document.createElement("元素名"); //创建元素节点
e1.属性名="属性值" //创建属性节点
appendChild( )可以把一个新元素插入到父元素的内部子元素的“末尾”。
语法
A.appendChild(B);
insertBefore( )方法可以将一个新元素插入到父元素中的某一个子元素“之前”。
语法
A.insertBefore(B,ref);
appendChild( )和insertBefore( )这两种插入元素的方法都需要先获取父元素才可以操作。
removeChild( )方法来删除父元素下的某个子元素。
语法
A.removeChild(B);
A表示父元素,B表示父元素内部的某个子元素。
cloneNode( )方法用来实现复制元素。
语法
obj.cloneNode(bool)
参数obj表示被复制的元素,而参数bool是一个布尔值,取值如下。
replaceChild( )方法用来实现替换元素。
语法
A.replaceChild(new,old);
A表示父元素,new表示新子元素,old表示旧子元素。