好程式設計師web前端培訓JavaScript學習筆記DOM
好程式設計師web 前端培訓JavaScript 學習筆記 DOM一DOM ( Document Object Model ): 文件物件模型
其實就是操作 html 中的標籤的一些能力
我們可以操作哪些內容
獲取一個元素
移除一個元素
建立一個元素
向頁面裡面新增一個元素
給元素繫結一些事件
獲取元素的屬性
給元素新增一些 css 樣式
...
DOM 的核心物件就是 docuemnt 物件
document 物件是瀏覽器內建的一個物件,裡面儲存著專門用來操作元素的各種方法
DOM : 頁面中的標籤,我們透過 js 獲取到以後,就把這個物件叫做 DOM 物件
獲取一個元素
- 透過 js 程式碼來獲取頁面中的標籤
- 獲取到以後我們就可以操作這些標籤了
- getElementById 是透過標籤的 id 名稱來獲取標籤的
- 因為在一個頁面中 id 是唯一的,所以獲取到的就是一個元素
getElementById
<body>
<div id ="box"></div>
<script>
var box = document.getElementById('box')
console.log(box) // <div></div> </script></body>
- 獲取到的就是頁面中的那個 id 為 box 的 div 標籤
- getElementsByClassName 是用過標籤的 class 名稱來獲取標籤的
- 因為頁面中可能有多個元素的 class 名稱一樣,所以獲取到的是一組元素
- 哪怕你獲取的 class 只有一個,那也是獲取一組元素,只不過這一組中只有一個 DOM 元素而已
getElementsByClassName
<body>
<div calss ="box"></div>
<script>
var box = document.getElementsByClassName('box')
console.log(box) // [<div></div>] console.log(box[0]) // <div></div> </script></body>
- 獲取到的是一組元素,是一個長得和陣列一樣的資料結構,但是不是陣列,是偽陣列
- 這個一組資料也是按照索引排列的,所以我們想要準確的拿到這個 div,需要用索引來獲取
- getElementsByTagName 是用過標籤的 標籤 名稱來獲取標籤的
- 因為頁面中可能有多個元素的 標籤 名稱一樣,所以獲取到的是一組元素
- 哪怕真的只有一個這個標籤名,那麼也是獲取一組元素,只不過這一組中只有一個 DOM 元素而已
getElementsByTagName
<body>
<div></div>
<script>
var box = document.getElementsByTagName('div')
console.log(box) // [<div></div>] console.log(box[0]) // <div></div> </script></body>
- 和 getElementsByClassName 一樣,獲取到的是一個長得很像陣列的元素
- 必須要用索引才能得到準確的 DOM 元素
- querySelector 是按照選擇器的方式來獲取元素
- 也就是說,按照我們寫 css 的時候的選擇器來獲取
- 這個方法只能獲取到一個元素,並且是頁面中第一個滿足條件的元素
querySelector
console.log(document.querySelector('div')) // 獲取頁面中的第一個 div 元素 console.log(docuemnt.querySelector('.box')) // 獲取頁面中第一個有 box 類名的元素console.log(document.querySelector('#box')) // 獲取頁面中第一個 id 名為 box 的元素
querySelectorAll
- querySelectorAll 是按照選擇器的方式來獲取元素
- 這個方法能獲取到所有滿足條件的元素,以一個偽陣列的形式返回
console.log(document.querySelectorAll('div')) // 獲取頁面中的所有的 div 元素 console.log(docuemnt.querySelectorAll('.box')) // 獲取頁面中所有有 box 類名的元素
- 獲取到的是一組資料,也是需要用索引來獲取到準確的每一個 DOM 元素
- 透過我們各種獲取元素的方式獲取到頁面中的標籤以後
- 我們可以直接操作 DOM 元素的屬性,就能直接把效果展示在頁面上
- 獲取元素內部的 HTML 結構
操作屬性
innerHTML
<body>
<div>
<p>
<span>hello</span>
</p>
</div>
<script>
var div = document.querySelector('div')
console.log(div.innerHTML)
/* <p> <span>hello</span> </p> */
</script></body>
- 設定元素的內容
<body>
<div></div>
<script>
var div = document.querySelector('div')
div.innerHTML = '<p>hello</p>'
</script></body>
- 設定完以後,頁面中的 div 元素裡面就會巢狀一個 p 元素
- 獲取元素內部的文字(只能獲取到文字內容,獲取不到 html 標籤)
innerText
<body>
<div>
<p>
<span>hello</span>
</p>
</div>
<script>
var div = document.querySelector('div')
console.log(div.innerText) // hello </script></body>
- 可以設定元素內部的文字
<body>
<div></div>
<script>
var div = document.querySelector('div')
div.innerText = '<p>hello</p>'
</script></body>
- 設定完畢以後,會把 <p>hello</p> 當作一個文字出現在 div 元素裡面,而不會把 p 解析成標籤
- 獲取元素的某個屬性(包括自定義屬性)
getAttribute
<body>
<div a ="100" class ="box"></div>
<script>
var div = document.querySelector('div')
console.log(div.getAttribute('a')) // 100 console.log(div.getAttribute('class')) // box </script></body>
setAttribute
- 給元素設定一個屬性(包括自定義屬性)
<body>
<div></div>
<script>
var div = document.querySelector('div')
div.setAttribute('a', 100)
div.setAttribute('class', 'box')
console.log(div) // <div a="100" class="box"></div> </script></body>
removeAttribute
- 直接移除元素的某個屬性
<body>
<div a ="100" class ="box"></div>
<script>
var div = document.querySelector('div')
div.removeAttribute('class')
console.log(div) // <div a="100"></div> </script></body>
style
- 專門用來給元素新增 css 樣式的
- 新增的都是行內樣式
<body>
<div></div>
<script>
var div = document.querySelector('div')
div.style.width = "100px"
div.style.height = "100px"
div.style.backgroundColor = "pink"
console.log(div)
// <div style="width: 100px; height: 100px; background-color: pink;"></div> </script></body>
- 頁面中的 div 就會變成一個寬高都是100,背景顏色是粉色
- 專門用來操作元素的 類名的
className
<body>
<div class ="box"></div>
<script>
var div = document.querySelector('div')
console.log(div.className) // box </script></body>
- 也可以設定元素的類名,不過是全覆蓋式的操作
<body>
<div class ="box"></div>
<script>
var div = document.querySelector('div')
div.className = 'test'
console.log(div) // <div class="test"></div> </script></body>
- 在設定的時候,不管之前有沒有類名,都會全部被設定的值覆蓋
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2690841/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師web前端培訓JavaScript學習筆記--jQuery程式設計師Web前端JavaScript筆記jQuery
- 好程式設計師web前端培訓分享JavaScript學習筆記Promise程式設計師Web前端JavaScript筆記Promise
- 好程式設計師web前端培訓分享JavaScript學習筆記cookie程式設計師Web前端JavaScript筆記Cookie
- 好程式設計師web前端培訓分享JavaScript學習筆記SASS程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記之設計模式程式設計師Web前端JavaScript筆記設計模式
- 好程式設計師web前端培訓分享學習JavaScript程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享JavaScript學習筆記分支結構程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記之正則程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記之陣列程式設計師Web前端JavaScript筆記陣列
- 好程式設計師web前端培訓分享node學習筆記程式設計師Web前端筆記
- 好程式設計師web前端培訓學習筆記Vue學習筆記一程式設計師Web前端筆記Vue
- 好程式設計師web前端培訓分享JavaScript學習筆記函式進階程式設計師Web前端JavaScript筆記函式
- 好程式設計師web前端培訓分享JavaScript學習筆記之ES5程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習指南程式設計師Web前端JavaScript
- 好程式設計師web前端培訓學習筆記Vue學習筆記之二程式設計師Web前端筆記Vue
- 好程式設計師web前端培訓分享HTMLCSS學習筆記BFC程式設計師Web前端HTMLCSS筆記
- 好程式設計師web前端培訓分享React學習筆記(三)程式設計師Web前端React筆記
- 好程式設計師web前端培訓分享React學習筆記(一)程式設計師Web前端React筆記
- 好程式設計師web前端培訓分享React學習筆記(二)程式設計師Web前端React筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記閉包與繼承程式設計師Web前端JavaScript筆記繼承
- 好程式設計師web前端培訓分享JavaScript學習筆記ajax及ajax封裝程式設計師Web前端JavaScript筆記封裝
- 好程式設計師web前端培訓分享JavaScript學習筆記之迴圈結構程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習筆陣列的排序程式設計師Web前端JavaScript陣列排序
- 好程式設計師web前端培訓分享詳解JavaScript學習筆記建構函式程式設計師Web前端JavaScript筆記函式
- 好程式設計師web前端培訓分享HTML DOM節點程式設計師Web前端HTML
- 好程式設計師web前端培訓分享HTML DOM簡介程式設計師Web前端HTML
- 好程式設計師web前端培訓分享JavaScript框架J程式設計師Web前端JavaScript框架
- 好程式設計師web前端培訓HTMLCSS學習筆記之頁面最佳化程式設計師Web前端HTMLCSS筆記
- 好程式設計師web前端培訓分享node學習筆記系列之四十一程式設計師Web前端筆記
- 好程式設計師web前端培訓分享之HTMLCSS學習筆記css3-多列程式設計師Web前端HTMLCSS筆記S3
- 好程式設計師web前端培訓分享HTMLCSS學習筆記css3選擇器程式設計師Web前端HTMLCSS筆記S3
- 好程式設計師web前端培訓分享之HTMLCSS學習筆記媒體查詢+ rem用法程式設計師Web前端HTMLCSS筆記REM
- 好程式設計師web前端培訓分享怎樣學好css?程式設計師Web前端CSS
- 好程式設計師web前端培訓分享Javascript中原型屬性程式設計師Web前端JavaScript原型
- 好程式設計師web前端培訓分享JavaScript基礎語法程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享JavaScript相關知識程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享九個JavaScript小技巧程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享之uni-app學習筆記uni-app詳解程式設計師Web前端APP筆記