摘要:什么是什么是什么叫做呢的全稱是文檔對象模型,定義了表示和修改文檔所需的對象這些對象的行為和屬性以及這些對象之間的關(guān)系。對象即為宿主對象,由瀏覽器廠商定義,用來操作的功能的一類對象和集合。簡單來說,就是用來操作和的,它是一系列對象的集合。
什么叫做DOM呢?
? DOM的全稱是Document Object Model 文檔對象模型,DOM定義了表示和修改文檔所需的對象、這些對象的行為和屬性以及這些對象之間的關(guān)系。
? DOM對象即為宿主對象,由瀏覽器廠商定義,用來操作html的css功能的一類對象和集合。不過瀏覽器廠商之間大部分都遵循w3c標(biāo)準(zhǔn)。
? 簡單來說,DOM就是用來操作html和css的,它是一系列對象的集合。
document代表整個文檔,它也是一個dom元素,我們dom對html的操作,即使對html的增刪改查。下面我就介紹一下dom都是如何增刪改查html的。
那么我們?nèi)绾尾榭丛毓?jié)點?
我們知道css中有id、class、標(biāo)簽等選擇器,同樣,我們的document對象上也定義了很多類似的方法來查看元素節(jié)點。
???getElementById?
document.getElementById(‘id’);方法是通過元素的id來選擇出相對應(yīng)的元素的,因為id是唯一標(biāo)示,所以方法名中是Element。?
值得注意的是,在ie8以下的瀏覽器中,不區(qū)分大小寫,而且標(biāo)簽的name屬性也可以被當(dāng)做id被選擇出來。?
?
var div = document.getElementById(‘demo’);?
這里同樣把這個div選擇出來了。?
???getElementsByClassName?
document.getElementsByClassName(‘class’); 獲取到的是一個類數(shù)組,因為很多元素都可以有一個類名。我們可以通過[]的方式來選擇到具體的哪一個元素。?
?
?
var div = document.getElementsByClassName(‘div’)[1];?
這樣我們就可以選擇到第二個div了。?
不過如果我們碰到這種情況該怎么辦??
?
?
?
我們改如何選擇出來第二個div??
這里,我們的getElementsByClassName其實后面可以填寫多個類名。?
var div = document.getElementsByClassName(‘demo demo1’)[0];?
這樣,我們就可以選擇出來第二個div了。?
但是值得注意的是,ie8及以下的版本中沒有這種方法。?
???getElementsByTagName?
document.getElementsByTagName(‘div’);這個方法是可以選擇出來具體某一種元素的集合,像前面這一段就可以選擇出全部的div集合,當(dāng)然也是一個類數(shù)組。?
這個方法所有版本的瀏覽器都兼容。?
???getElementsByName?
document.getElementsByName();需要注意的是,只有部分標(biāo)簽的name可以生效,比如表單、表單元素、img、iframe等。?
?
document.getElementsByName(‘123’)[0];?
同樣是選擇出來一組,不過這個方法不是很常用。?
?? 這里面我們我們最常用的是id和tag,因為全版本都支持。?
???querySelector()?
???querySelectorAll()?
這兩個方法通常放在一起說。?
我們知道選擇元素最強的是css,而這兩個里面寫的參數(shù)就是我們css選擇器的寫法。?
document.querySelector(‘div p #demo .demo);?
不過querySelector永遠選擇一組里面的第一個,所以返回的不是一個類數(shù)組而是一個具體的元素。?
而我們?nèi)绻祷匾粋€類數(shù)組的集合的話,那么就用第二個querySelectorAll()方法。?
不過這兩個方法的問題在于,他們返回的不像前面四個是一個實時改變的元素,而是一個副本。當(dāng)我們用這兩個方法選擇出來元素之后,我們把本身那個元素修改一下,會發(fā)現(xiàn)我們選擇出來的那個元素沒有變化。?
?
var div = document.querySelectorAll(‘.content’);?
我們發(fā)現(xiàn)兩次打印出來的都是[div.content, div.content, div.content],也就是說我們實際刪除的那個元素對用querySelector選擇出來的那個副本沒有影響。?
不過,在ie7及以下的版本沒有這兩個方法。?
我們以后提到的jQuery里面的選擇器,雖然是基于Sizzle的,但是Sizzle是基于querySelector寫的。?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/1520.html
摘要:開始標(biāo)簽和結(jié)束標(biāo)簽也被稱為開放標(biāo)簽和閉合標(biāo)簽。網(wǎng)頁主要由三部分組成結(jié)構(gòu)表現(xiàn)和行為對應(yīng)標(biāo)準(zhǔn)也分三方面結(jié)構(gòu)化標(biāo)準(zhǔn)語言表現(xiàn)標(biāo)準(zhǔn)語言行為標(biāo)準(zhǔn)。表現(xiàn)標(biāo)準(zhǔn)語言主要是,用于對網(wǎng)頁進行美化。初識HTML和WEB標(biāo)準(zhǔn) 什么是 HTML? HTML 超文本標(biāo)記語言的縮寫(Hyper Text Markup Language) HTML 并不是編程語言,而是一種標(biāo)記語言(markup language) 標(biāo)記...
摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現(xiàn)在已經(jīng)一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現(xiàn)將已經(jīng)寫好的文章整理一個目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...
閱讀 1306·2021-10-08 10:04
閱讀 1938·2021-09-04 16:40
閱讀 2547·2019-08-30 13:21
閱讀 2291·2019-08-29 15:10
閱讀 2859·2019-08-29 12:35
閱讀 1200·2019-08-26 17:41
閱讀 3071·2019-08-26 17:03
閱讀 1152·2019-08-26 12:01