之前學(xué)習(xí)了什么是DOM, 知道了DOM就是節(jié)點,那么面臨的第二個問題就是,我們應(yīng)該怎樣去使用這些節(jié)點呢。
想要使用這些元素節(jié)點呢,首先就要先獲取元素節(jié)點,然后再對其進(jìn)行操作。
那么如何獲取元素節(jié)點呢?DOM提供了三種方法,getElementById()、getElementsByTagName()、getElementsByClassName()來獲取。
1.getElementById
getElementById() 方法返回帶有指定 ID 的元素:
使用方法:document.getElementById(id);
這是之前使用過的一段代碼:

接下來用它來進(jìn)行具體的操作。
document.getElementById("like");
這個語句就獲取了id屬性值為"like"的這個元素,然后用typeof操作符查看它的操作數(shù)是什么類型。
在代碼中加入:
<script>
alert(typeof document.getElementById("like"));
</script>
結(jié)果如下圖所示,其結(jié)果說明document.getElementById("like")的類型是一個對象,事實上,文檔中的每一個元素都是一個對象。利用這個方法我們可以得到HTML中的任何一個對象。但是id是獨一無二的,當(dāng)我們需要獲取沒有id的對象是就要用到getElementsByTagName方法了。

2.getElementsByTagName
getElementsByTagName() 返回帶有指定標(biāo)簽名的所有元素。
使用方法:document.getElementsByTagName(tagname);
這個方法與getElementById方法有些相似的地方,但是不同的地方是它返回的是一個數(shù)組,例如將之前的句子改成:
alert(document.getElementsByTagName("li").length);
其結(jié)果為:

結(jié)果顯示的是3,而我們的代碼中有三個li標(biāo)簽,說明這個句子獲取了所有指定的標(biāo)簽名的所有元素。如果要對其中一個li標(biāo)簽進(jìn)行操作的話,只要知道該標(biāo)簽的位置就可以使用了。這里的每個元素都是一個對象,我們可以用之前的typeof方法來證明一下。為了不用反復(fù)的敲同一段代碼將其賦值給一個變量。
var items=document.getElementsByTagName("li");
for(var i=0;i<items.length;i++){
alert(typeof items[i]);
}

你會看到三個如上圖一樣的警告框,說明items中的每一個元素都是一個對象。
3.getElementsByClassName
這個方法讓我們能夠通過class屬性中的類名訪問元素。
使用方法:document.getElementsByClassName(class);
這個方法的參數(shù)是類名,我們依舊使用alert來進(jìn)行操作:
alert(document.getElementsByClassName("fruit").length);

其結(jié)果如上圖所示,其長度為2,因為我們代碼中class為"fruit"的元素只有后兩個li標(biāo)簽,所以第一個li標(biāo)簽并沒有被我們獲取到。這樣的話當(dāng)我們需要對不同的li元素進(jìn)行操作時,也可以不用知道li標(biāo)簽是第幾個了,只要知道它們的類名,我們也能夠?qū)λM(jìn)行操作。
注釋:getElementsByClassName() 在 Internet Explorer 5,6,7,8 中無效。