原生js中獲取元素的方法有很多,那么今天就來重點說一下getElementById和ByTagName的區別:
1、getElementById前面必須是document;而getElementByTagName前面除了是document也可以是其他的元素;先來看一下簡單的html代碼
1 <ul> 2 <li></li> 3 <li></li> 4 <li></li> 5 </ul> 6 <ol> 7 <li></li> 8 <li></li> 9 <li></li> 10 </ol>
舉例說明,就如上面的html,我們若是想要找到ol里的li,那么我們就應該先找到ol,然后找它里面的li,那么js代碼獲取就應該這么寫
1 var Ol=document.getElementById("ol");//就要先把ol上設個id,然后通過id找到它 2 var li=Ol.getElementsByTagName("li");//接下來就找ol里的li
2、getElementById算是一個靜態方法,而getElementByTagName是一個動態方法,需注意的是ByTagName找到的元素肯定是一個集合,就算頁面只有一個,那么也就說這個集合的長度為1,和數組類似。
比如,一個頁面里沒有任何標簽,但是我們想給它動態添加幾個button,那么我們就應該先給body添加幾個,應該這么寫:
1 document.body.innerHTML="<input type='button' value='按鈕'/>,<input type='button' value='按鈕'/>,<input type='button' value='按鈕'/>" ;
給body添加完按鈕,那么我們想要找到這幾個按鈕中的第二個,那么就要通過ByTagName了,具體寫法是這樣的:
1 var Btn=document.etElementsByTagName("input");//先獲取頁面的上的button;
2 Btn[1].onclick=function(){//ByTagName獲取到的相當於是一個集合,和數組類似,但是不太一樣,所以也是從0開始的,想要找到第二個,那么后面就必須要跟[1]
3 alert("我是第二個按鈕")
4 };
既然這里說到給body添加標簽,那么也再說一點,我們也可以改變頁面上title里的內容,具體寫法是:
1 document.title="歡迎你";//和在body里添加內容是不一樣,可以直接寫在document后面
給body添加一定要記得寫innerHTML,而title卻不一樣。好了,今天就寫到這里吧,明天繼續!