day01---初時WebApi以及Dom

一:Web API 基本認知

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

二:Dom

什么是dom?
DOM(Document Object Model)文檔對象模型 是用來呈現(xiàn)以及與任意 HTML 或 XML文檔交互的API【DOM是瀏覽器提供的一套專門用來 操作網(wǎng)頁內(nèi)容 的功能】
DOM的作用:
1.實現(xiàn)網(wǎng)頁特效
2.實現(xiàn)用戶交互

Dom樹

HTML 文檔以樹狀結(jié)構(gòu)直觀的表現(xiàn)出來
能直觀的體現(xiàn)了標簽與標簽之間的關(guān)系

Dom對象(重要)

什么是dom對象砌梆?---瀏覽器根據(jù)html標簽生成的 JS對象
dom對象的核心思想:把網(wǎng)頁內(nèi)容當作對象來處理

document對象
是dom里提供的一個對象,它提供的屬性和方法都是用來訪問和操作網(wǎng)頁內(nèi)容的
例:document.write()
網(wǎng)頁所有內(nèi)容都在document里面

怎么獲取dom對象呢村象?
獲取單個元素

根據(jù)CSS選擇器來獲取DOM元素 (重點)
語法:

document.querySelector('css選擇器')

它獲取的是匹配的第一個元素N峦А!像吻!
參數(shù)(css選擇器)要填寫字符串內(nèi)容>颉8绰 !
返回值:匹配到的第一個元素姆涩,沒有的話就返回null

獲取多個元素

document.querySelector只能獲取一個元素挽拂,那么我們想要獲取多個元素用什么方法呢?---document.querySelectorAll
語法:

document.querySelectorAll('css選擇器')

參數(shù)也要填寫字符串內(nèi)容
返回值是一個對象集合(偽數(shù)組)骨饿,沒有值的話就返回一個空的偽數(shù)組

什么是偽數(shù)組亏栈?
偽數(shù)組:
? 有l(wèi)ength長度、索引號
? 但是沒有 pop() push() 等數(shù)組方法
?想要得到里面的每一個對象样刷,則需要遍歷(for)的方式獲得

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

    // 通過id名來獲取
console.log(document.getElementById('box'))

    // 通過類名來獲取
console.log(document.getElementsByClassName('ul')) // 也是個偽數(shù)組


    // 通過標簽名來獲取
console.log(document.getElementsByTagName('h1'))

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

如果想要修改標簽元素的里面的內(nèi)容仑扑,則可以使用如下方式:

對象.innerText 屬性:

元素innerText 屬性
? 能夠操作標簽的內(nèi)容
? 文本中包含的標簽不會被解析
語法:

let divObj = document.querySelector('div') // js對象(DOM對象)
    // innerText 設置內(nèi)容(純文本)  使用等號賦值即可
divObj.innerText = '綠色的回憶,可綠了'
對象.innerHTML 屬性

如果想要解析標簽呢置鼻?innerText屬性并不能解析標簽镇饮,此時要用到innerHTML屬性,這也是工作中比較推薦的一種屬性方法箕母。
元素.innerHTML 屬性
? 能夠操作標簽的內(nèi)容
? 文本中包含的標簽會被解析
語法:

    // innerHTML 設置內(nèi)容(帶標簽) 標簽是生效的(可以被解析 生效了)
divObj.innerHTML = '<h2>這是修改后的</h2>'

注意:
docuemnt.querySelectorAll('div') querySelectorAll querySelector 都是方法储藐,需要()
divObj.innerHTML = '內(nèi)容' innerHTML 都是屬性,使用等號來賦值即可

設置/修改DOM元素屬性

想要修改DOM元素屬性的前提嘶是,都是必須先要獲取到要修改的元素钙勃。必須先使用documentquerySelector獲取元素,才能進行修改操作聂喇。

設置/修改元素常用屬性

可以通過JS 設置 / 修改標簽元素屬性辖源,比如通過 src 更換圖片 l 最常見的屬性 比如: href、title希太、src 等
對象.屬性 = 值克饶;

設置/修改元素樣式屬性

一. 通過類名操作CSS
①. className屬性

    // 使用className操作類名修改樣式

    let divObj = document.querySelector('div')

    // 語法:DOM對象.className = '類名'

    divObj.className = 'active'

注意:

  1. 由于class是關(guān)鍵字, 所以使用className去代替
  2. 有覆蓋問題

②. classList 語法
使用classList操作類名修改樣式
classList.add() 追加

    divObj.classList.add('active')

classList.remove() 刪除

    divObj.classList.remove('one')

classList.toggle() 切換(如果元素有該類名,會移除該類名誊辉,沒有該類名矾湃,添加上該類名)沒有就添加,有就移除

    divObj.classList.toggle('one') // 沒有就添加堕澄,有就刪除

二. 通過 style 屬性操作CSS
對象.style.樣式屬性 = 值邀跃;

divObj.style.width = '100px'

注意:
1.不要落下單位px,否則設置無效
2.對于有中劃線的蛙紫,需要遵守駝峰式寫法 比如 font-size z-index...

設置/修改 表單元素 屬性

語法
// 獲扰男肌: 對象.屬性名
// 設置: 對象.屬性名 = 值
1.value屬性

// 獲取
    console.log(inp1.value)

    // 設置
    inp1.value = '我們都會月薪過萬的

2.type屬性

    // type屬性

    // 獲取
    console.log(inp1.type)

    // 設置
    inp1.type = 'password' // 設置為密碼框

布爾值的屬性(disabled、checked坑傅、selected)

// 布爾類型的屬性 (disabled丽涩、checked、selected)
    //  布爾類型(true  和 false)
    //  就是說裁蚁,以上屬性的值矢渊,要么是true,要么false
    inp1.disabled = true // true 表示要禁用 inp1

    inp1.disabled = false // false 表示去掉禁用 inp1


    inp2.checked = false // 不選中

定時器函數(shù)

使用場景:網(wǎng)頁中的倒計時枉证、輪播圖的自動切換效果
定時器函數(shù)作用:每隔一段時間矮男,重復調(diào)用一個函數(shù) 間隔時間單位是毫秒

  1. 開啟定時器
    setInterval(函數(shù), 間隔時間)

2.關(guān)閉定時器
clearInterval(定時器id)
參數(shù): 定時器的id 是當setInterval開啟定時器的時候,返回值(是開啟的定時器的id)

案例:用戶注冊倒計時

// 用戶注冊倒計時
        // 按鈕60秒之后才可以使用

        // 分析步驟
        //  1. 先獲取到按鈕
        //  2. 將按鈕禁用  ==> disabled 布爾類型屬性
        //  3. 倒計時效果  每間隔一秒來更新下按鈕的內(nèi)容
        //                  定時器 + innerHTML
        //  4. 倒計時結(jié)束了 為0的時候室谚,要干啥
        //      4.1 去掉禁用效果
        //      4.2 修改按鈕的文字
        //      4.3 關(guān)閉定時器

        // 1. 
        let btnObj = document.querySelector('.btn') // 元素 DOM對象
        console.log(btnObj)

        // 2. 
        btnObj.disabled = true // 按鈕真的禁用了

        let num = 6 // nun變量表示倒計時從6開始

        // 3. 
        let timerId = setInterval(function () {
            console.log('測試代碼')

            // num-- 需要每間隔一秒來執(zhí)行一次
            num--
            console.log(num)  // 6 5 4 3 2 1 0


            btnObj.innerHTML = `我已經(jīng)閱讀用戶協(xié)議(${num})`


            // 注意if位置不要跑偏毡鉴,寫在定時器的函數(shù)里面
            if (num === 0) {
                // num為0,倒計時結(jié)束
                // 去掉禁用效果
                btnObj.disabled = false

                // 關(guān)閉定時器
                clearInterval(timerId)

                // 修改按鈕的內(nèi)容
                btnObj.innerHTML = '我已經(jīng)同意該協(xié)議秒赤!'
            }
        }, 1000)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末猪瞬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子入篮,更是在濱河造成了極大的恐慌陈瘦,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潮售,死亡現(xiàn)場離奇詭異痊项,居然都是意外死亡,警方通過查閱死者的電腦和手機酥诽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門鞍泉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肮帐,你說我怎么就攤上這事咖驮。” “怎么了训枢?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵托修,是天一觀的道長。 經(jīng)常有香客問我肮砾,道長诀黍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任仗处,我火速辦了婚禮眯勾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘婆誓。我一直安慰自己吃环,他們只是感情好,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布洋幻。 她就那樣靜靜地躺著郁轻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上好唯,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天竭沫,我揣著相機與錄音,去河邊找鬼骑篙。 笑死蜕提,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的靶端。 我是一名探鬼主播谎势,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杨名!你這毒婦竟也來了脏榆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤台谍,失蹤者是張志新(化名)和其女友劉穎须喂,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體典唇,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡镊折,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了介衔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恨胚。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖炎咖,靈堂內(nèi)的尸體忽然破棺而出赃泡,到底是詐尸還是另有隱情,我是刑警寧澤乘盼,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布升熊,位于F島的核電站,受9級特大地震影響绸栅,放射性物質(zhì)發(fā)生泄漏级野。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一粹胯、第九天 我趴在偏房一處隱蔽的房頂上張望蓖柔。 院中可真熱鬧,春花似錦风纠、人聲如沸况鸣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镐捧。三九已至潜索,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間懂酱,已是汗流浹背竹习。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留玩焰,地道東北人由驹。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像昔园,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子并炮,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

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

  • 1.DOM基本認知 DOM(Document Object Model)文檔對象模型 是用來呈現(xiàn)以及與任意 HTM...
    這個名字很有品味閱讀 362評論 0 0
  • 基本認知 作用:就是使用 JS 去操作 html 和瀏覽器分類:DOM (文檔對象模型)BOM(瀏覽器對象模型) ...
    cheunggaryu閱讀 191評論 0 0
  • 第一章 1.什么是DOM DOM: Document Object Model(文檔對象模型) 是JavaScri...
    fastwe閱讀 800評論 0 0
  • 1. offset client scroll三大系列 2. mouseenter 和mouseover的區(qū)別 3...
    Scincyc閱讀 578評論 0 0
  • 瀏覽器每次加載頁面時逃魄,都在內(nèi)存里創(chuàng)建頁面及其全部元素的一個內(nèi)部表示體系荤西,也就是DOM。在DOM里伍俘,頁面的元素具有一...
    海綿寶寶_b8a2閱讀 241評論 0 0