web apis 基本認(rèn)知

web APIs 基本認(rèn)知

作用和分類

  • 作用:就是使用JS去操作html和瀏覽器
  • 分類:DOM(文檔對象模型)办斑,BOM(瀏覽器對象模型)

DOM基本知識

  1. 什么是DOM
  • DOM是用來呈現(xiàn)以及任意HTML或XML文檔交互的API
  • 大白話:DOM是瀏覽器提供一套專門操作網(wǎng)頁內(nèi)容的功能
  • DOM作用:開發(fā)網(wǎng)頁內(nèi)容特效和實現(xiàn)用戶交互
  1. DOM樹
  • 將HTMl文檔以樹狀結(jié)構(gòu)直觀表現(xiàn)出來,我們稱之為DOM樹
  • 描述網(wǎng)頁內(nèi)容關(guān)系的名詞
  • 作用:文檔數(shù)直觀的體現(xiàn)了標(biāo)簽與標(biāo)簽之間的關(guān)系
  1. DOM對象
  • DOM對象:瀏覽器根據(jù)html標(biāo)簽生成的js對象

  • 所有的標(biāo)簽屬性都可以在這個對象上找到
    修改這個對象上的屬性會自動映射到標(biāo)簽身上

  • DOM的核心思想

  • 把網(wǎng)頁內(nèi)容當(dāng)做對象來處理

  • document對象

  • 是DOM里提供一個對象

  • 所以他提供的屬性和方法都是用來訪問和操作網(wǎng)頁內(nèi)容的

  • 網(wǎng)頁所有內(nèi)容都在document里面

獲取DOM元素

1. 根據(jù)css選擇器來獲取DOM元素

  1. 匹配第一個第一個元素
document.querySelector('css選擇器')

參數(shù):

  • 包含一個或者多個有效的css選擇器字符串
<div class="box">
    <input name='xx'>    
</div>
//選中了div里面的name屬性為xx的input標(biāo)簽
let inputDom = document.querySelector("div.box input[name='xx']");

返回值:

  • css選擇器匹配的第一個元素,一個HTMLElement對象
<div>1</div>
<div>2</div>
<script>
    let divDom = document.querySelector('div')
    console.dir(divDom)
</script>
  • 如果沒有匹配到尚洽,則返回null
<script>
    let divDom = document.querySelector('div')
    console.dir(divDom)//null
</script>
  • 用console.log打印出來的是標(biāo)簽腺毫,要想輸出一個dom對象就用console.dir()
<div></div>
<script>
    let divDom = document.querySelector('div')
    console.log(divDom)
    console.dir(divDom)
</script>
  1. 選擇匹配的多個元素
document.querySelectorAll('css選擇器')
參數(shù):

  - 包含一個或多個有效的css選擇器字符串

  返回值:
  
  - css選擇器匹配的所有符合的對象集合
  
    ```html
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
    let liDom = document.querySelectorAll('ul li')
    console.dir(liDom)
    ```
  
  - 1
  
  - 
  
  特點(diǎn):
  
  - 得到的是一個偽數(shù)組
  
  - 沒有數(shù)組的pop(),push()等數(shù)組的方法
  
  - 想要得到里面的每一個對象睛挚,則需要遍歷的方式來獲得
  
    ```js
    let divs = document.querySelectorAll('divs')
    console.dir(divs)
    ```
  
    
  
  注意:哪怕只有一個元素澈灼,通過querySelectorAll()獲取過來的也是一個偽數(shù)組叁熔,里面只有一個元素而已

2. 其他獲取DOM元素方法(了解)

  1. 根據(jù)id獲取一個元素
document.getElementById('id名')
  1. 根據(jù)標(biāo)簽取一類元素 獲取頁面所有的div
documentgetElementsByTagName('div')
  1. 根據(jù)類名獲取元素 獲取頁面所有同類名的元素
document.getElementsByClassName('w')

設(shè)置/修改DOM元素內(nèi)容

DOM對象都是根據(jù)標(biāo)簽生成的荣回,所以操作標(biāo)簽,本質(zhì)上就是操作DOM對象壕吹。就是操作對象使用的點(diǎn)語法

  1. document.write()方法
  • 只能將文本內(nèi)容追加到前面的位置
  • 文本包含標(biāo)簽會被解析
//永遠(yuǎn)只是追加操作删铃,且只能位置</body>前
document.write('Hello World')
document.write('<h3>你好猎唁,js</h3>')
  1. 對象.innerText 屬性
  • 將文本內(nèi)容添加/更新到任意表標(biāo)簽位置

  • 將文本包含的標(biāo)簽不會被解析

<div class="box"></div>
let box = document.querySelector('.box')
box.innerText = '<h4>你好咒劲,世界</h4>'
  1. 對象.innerHTML 屬性
  • 將文本內(nèi)容添加/更新到任意標(biāo)簽位置
  • 文本中包含的標(biāo)簽會被解析
<div class="box"></div>
let box = document.querySelector('.box')
box.innerHTML = '<h6>我的世界<br>有你真好</h6>'

設(shè)置/修改DOM元素屬性

可以通過JS設(shè)置/修改標(biāo)簽元素屬性。比如通過src更換 圖片

可以通過JS設(shè)置/修改元素樣式屬性

  1. 設(shè)置/修改元素常用屬性
    語法:
對象.屬性 = 值

代碼示例:

<img src='' title='未定義圖片'/>
//獲取到img標(biāo)簽
let pic = document.querySelector('img')
//操作元素設(shè)置或者修改屬性
pic.src = '圖片路徑'
pic.src = '這是一個圖片'

  1. 設(shè)置修改元素樣式屬性
    通過style屬性操作css
    語法:
對象.style.樣式屬性 = 值

注意:

  1. 修改樣式通過style屬性引出
  2. 如果屬性有 - 連接符诫隅,需要轉(zhuǎn)換為小駝峰命名法
  3. 賦值的時候腐魂,需要的時候不要忘記加css單位
<div class="box"></div>
let box = document.querySelector('.box')
//修改盒子的樣式屬性
box.style.backgroundColor = 'skyblue'
box.style.width = '300px'
box.style.height = '300px'
box.style.marginTop = '50px'

  1. 操作類名(className)操作css
    如果修飾的樣式比較多,直接通過style屬性修改比較繁瑣逐纬,我們可以借助類名的形式

語法:

元素.className = 'box'

注意:

  • 由于class是關(guān)鍵字蛔屹,所以要使用className去代替
  • className是使用新的值換舊值,如果需要添加一個類豁生,需要保留之前的類名
    代碼示例:
.box {
            width: 100px;
            height: 100px;
            background-color: skyblue;
            color: pink;
        }

.box1 {
            width: 200px;
            height: 200px;
            background-color: aqua;
        }
<div class="box">你好</div>
    <script>
        let div = document.querySelector("div")
        //會替換掉已有的類名
        div.className = 'box1'
        //想要保存類名必須加上以前那個類
        // div.className = 'box box1'
</script>

  1. 通過classList操作控制css
    為了解決className容易覆蓋以前的類名兔毒,可以通過classList方式追加和刪除類名
    語法:

追加一個類

//可以一次添加多個類
元素.classList.add('類名')

刪除一個類

//可以同時刪除多個類
元素.classList.remove('類名')

切換一個類

//如果本來有沛硅,那我就移除  眼刃, 如果本來沒有,那我就添加
元素.classList.toggle('類名')
  1. 設(shè)置/修改 表單元素 屬性
  • 獲取
DOM對象.屬性名
  • 設(shè)置
DOM對象.屬性名 = 新值
  • 語法
表單.value='用戶名'
表單.type = 'password'
....

定時器-間歇函數(shù)

  • 定時器介紹
    網(wǎng)頁中經(jīng)常會需要一種功能:每隔一段時間需要自動執(zhí)行一行代碼摇肌,不需要我們手動觸發(fā)。就比如網(wǎng)頁中的倒計時仪际,要實現(xiàn)這種需求围小,需要定時器函數(shù)昵骤。其中一種就是間歇函數(shù)
  • 定時器的使用
    1.開啟定時器
setInterval(函數(shù),間隔函數(shù))



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市肯适,隨后出現(xiàn)的幾起案子变秦,更是在濱河造成了極大的恐慌,老刑警劉巖框舔,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹦玫,死亡現(xiàn)場離奇詭異,居然都是意外死亡刘绣,警方通過查閱死者的電腦和手機(jī)樱溉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纬凤,“玉大人福贞,你說我怎么就攤上這事⊥J浚” “怎么了挖帘?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恋技。 經(jīng)常有香客問我拇舀,道長,這世上最難降的妖魔是什么蜻底? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任骄崩,我火速辦了婚禮,結(jié)果婚禮上朱躺,老公的妹妹穿的比我還像新娘刁赖。我一直安慰自己,他們只是感情好长搀,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布宇弛。 她就那樣靜靜地躺著,像睡著了一般源请。 火紅的嫁衣襯著肌膚如雪枪芒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天谁尸,我揣著相機(jī)與錄音舅踪,去河邊找鬼。 笑死良蛮,一個胖子當(dāng)著我的面吹牛抽碌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播决瞳,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼货徙,長吁一口氣:“原來是場噩夢啊……” “哼左权!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起痴颊,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤赏迟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蠢棱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锌杀,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年泻仙,在試婚紗的時候發(fā)現(xiàn)自己被綠了糕再。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡饰豺,死狀恐怖亿鲜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情冤吨,我是刑警寧澤蒿柳,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站漩蟆,受9級特大地震影響垒探,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怠李,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一圾叼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捺癞,春花似錦夷蚊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至唐础,卻和暖如春箱歧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背一膨。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工呀邢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人豹绪。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓价淌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子输钩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容