在前面的文章有簡單介紹過,傳送門:JavaScript 初心者筆記: JS 內建物件 - 全域物件篇。
DOM 是 Document Object Model 的縮寫,中文叫做文件物件模型。HTML 世界中的元素,對應到 JS 世界就叫做 DOM。
瀏覽器在解析我們的網頁結構的時候,首先會先解析出一個文件 ( document ),然後像樹狀圖一樣一層一層向下解析 HTML 標籤,每個標籤都是一個 DOM 節點。
以添加文字為例,在之前我們學會的寫法是這樣:document.getElementById('titleId').textContent = '1234';
現在我們可以用 .querySelector('#id 名' / '.class 名')
來選取元素,而且為了程式應用上的靈活度,可以拆成兩部分:
var el = document.querySelector('#titleId');
el.textContent = '1234';
.querySelector()
還可以選到 id
/ class
的子元素喔!
var el = document.querySelector('#titleId em');
el.textContent = '1234';
因為網頁上 id
不能重複,只會有唯一一個,所以才有 getElementById
來讀取這個獨一無二的東西,但它也只能用來讀取 id
而已。
剛剛講的 querySelector
遇到重複的 class
存在時,它只能選取第一筆資料;而如果我們有許多相同的 class
都要選取,就該用 querySelectorAll
,所選取的所有元素將會以陣列的形式回傳,因此如果後續要對元素做任何修改,就應該透過陣列的規則,配合 for
迴圈去跑。
var el = document.querySelectorAll('.titleClass');
el[0].textContent = '123';
el[1].textContent = '123';
var el = document.querySelectorAll('.titleClass');
var elLen = el.length;
for( i=0 ; i < elLen ; i++){
el[i].textContent = i + '123';
}
選取 DOM 的方法就介紹這邊,明天將繼續介紹「如何用 JS 更改 HTML 元素屬性及 CSS」~