<strike id="ca4is"><em id="ca4is"></em></strike>
  • <sup id="ca4is"></sup>
    • <s id="ca4is"><em id="ca4is"></em></s>
      <option id="ca4is"><cite id="ca4is"></cite></option>
    • 二維碼
      企資網

      掃一掃關注

      當前位置: 首頁 » 企資快訊 » 匯總 » 正文

      DOM_操作之屬姓操作

      放大字體  縮小字體 發布日期:2022-02-14 17:23:15    作者:葉琳娜    瀏覽次數:27
      導讀

      本章目標掌握基本屬性得使用掌握 textContent 和 innerHTML 得區別掌握表單屬性得使用掌握自定義屬性得使用本章任務能夠完成梅梅相冊案例能夠完成登錄驗證功能能夠完成注冊頁面得同意協議單選框功能能夠完成小圖切換

      本章目標
    • 掌握基本屬性得使用
    • 掌握 textContent 和 innerHTML 得區別
    • 掌握表單屬性得使用
    • 掌握自定義屬性得使用本章任務
    • 能夠完成梅梅相冊案例
    • 能夠完成登錄驗證功能
    • 能夠完成注冊頁面得同意協議單選框功能
    • 能夠完成小圖切換大圖功能屬性操作

      在梅梅畫廊得案例中,我們需要獲取到 img 元素,并修改 img 中顯示得支持還需要獲取到頁面上得 p 元素修改 p 元素中顯示得內容,本章中我們就來學習如何修改元素得相關屬性。

      基本屬性

      基本屬性指得是 HTML 標簽本身所具有得屬性(HTML 中得標準屬性),這些屬性在瀏覽器把 HTML 文檔生成 DOM 樹得時候會自動設置為 DOM 樹上元素節點對象得屬性。

      常用得基本屬性:href、title、id、src。

      獲取或者設置基本屬性得語法和步驟:

      // 獲取 DOM 元素let dom = document.getElementById('id');// 獲取屬性console.log(dom.屬性名稱)// 設置屬性dom.屬性名稱 = '屬性值'

    • 獲取元素屬性得值

      <a id="link" href="特別baidu">百度</a>

      let link = document.getElementById('link');// 獲取元素得屬性console.log(link.id); // "link"console.log(link.href); // "特別baidu/"

    • 設置元素屬性得值

      let link = document.getElementById('link');// 設置元素得屬性link.title = 'google';link.href = '特別google';

      你可以嘗試下按鈕修改 img 標簽得支持(修改 src 屬性)。

      更改標簽之間得內容

      在梅梅畫廊中我們需要更改 p 標簽之間得內容,但是如何設置標簽之間得內容?這里沒有對應 HTML 得標準屬性,但是這是一種常見得操作 DOM 對象提供了兩個屬性可以讓我們方便得修改標簽之間得內容:textContent 和 innerHTML,下面我們分別來介紹。

    • 獲取或者設置標簽之間得文本內容

      let p = document.getElementById('p');// 獲取標簽之間得內容console.log(p.textContent);// 設置標簽之間得內容p.textContent = 'Hello DOM';

      你可能在其他地方見過 innerText 屬性,注意這是早期 IE 中獲取或者設置標簽之間文本內容得屬性,現代瀏覽器依然支持該屬性,但是 DOM 中規定得標準屬性是 textContent

    • 獲取或者設置標簽之間得 HTML 內容

      let p = document.getElementById('p');// 獲取標簽之間得內容console.log(p.innerHTML)// 設置標簽之間得內容p.innerHTML = '<b>Hello DOM</b>'

    • textContent 和 innerHTML 得區別
    • textContent 獲取得內容中包含 HTML 標簽會被忽略
    • textContent 設置得內容中包含 HTML 標簽會直接顯示
    • innerHTML 獲取得內容中包含 HTML 會返回標簽和內容
    • innerHTML 設置得內容中包含 HTML 標簽,標簽會被渲染
    • HTML 中得字符實體

      在網頁中有一些特殊得符號,比如:< >;想要顯示這些符號需要對這些內容進行轉義,也就是使用 HTML 得實體。

      字符實體得表示形式:

      &字符實體編號;< // < 顯示小于號> // > 顯示大于號

      顯示結果

      描述

      實體名稱

      實體編號

      空格

       

      <

      小于號

      <

      <

      >

      大于號

      >

      >

      &

      和號

      &

      &

      "

      引號

      "

      "

      '

      撇號

      ' (IE不支持)

      '

      分(cent)

      ¢

      ¢

      鎊(pound)

      £

      £

      元(yen)

      ¥

      ¥

      歐元(euro)

      §

      小節

      §

      §

      ?

      感謝(copyright)

      ©

      ©

      ?

      注冊商標

      ®

      ®

      ?

      商標

      ×

      乘號

      ×

      ×

      ÷

      除號

      ÷

      ÷

      需要記住其中得空、>、< 得字符實體名稱

      案例:梅梅畫廊
    • 需求:
    • 獲取一組 a 元素
    • 獲取大圖對應得 img 元素
    • 獲取 id 為 des 得 p 元素
    • 遍歷所有得 a 元素,注冊 click 事件
    • 獲取 a 得 href 屬性并賦值給 img 得 src 屬性
    • 獲取當前得 a 得 title 值賦值給 p 得 textContent
    • 取消 a 得默認行為(見下面注意得地方)
    • 代碼:

      // 1. 獲取一組a元素let links = document.getElementsByTagName('a');// 2. 獲取id為photo得img元素let photo = document.getElementById('photo');// 3. 獲取id為des得p元素let p = document.getElementById('des');// 4. 循環遍歷a,注冊 click事件for (let i = 0; i < links.length; i++) { links[i].onclick = function () { // 4.1 獲取當前得a得href值賦值給 img得src屬性 photo.src = this.href; // 4.2 獲取當前得a得title值賦值給p得 textContent p.textContent = this.title; // 4.3 取消a得默認跳轉行為 return false; };}

      注意:給 a 元素注冊事件得時候,如果 a 元素設置了 href 屬性,當觸發 a 得事件并且事件處理函數執行完畢后,會繼續執行跳轉到 href 屬性,這是 a 標簽得默認行為。

      我們想要 a 得事件處理函數不跳轉,取消 a 標簽得默認行為可以在事件處理函數中 return false

      表單屬性

      Javascript 蕞初得目得是用來驗證用戶得輸入是否合法,為了實現表單元素得驗證,我們需要獲取用戶輸入得內容,這需要使用到表單元素得屬性。

    • 常用得表單元素屬性
    • value:用于大部分表單元素得內容獲取(option除外)
    • type:可以獲取input標簽得類型(輸入框或復選框等)
    • disabled:禁用屬性
    • checked:復選框/單選框選中屬性
    • selected:下拉菜單選中屬性案例:登錄得驗證
    • 需求:
    • 驗證用戶協議是否同意
    • 驗證用戶名必須在 3-6 位之間,包含3和6位
    • 驗證密碼必須大于等于8位
    • 代碼:

      let btn = document.querySelector('#btn');btn.onclick = function () { let username = document.querySelector('#username').value; let pwd = document.querySelector('#pwd').value; let chk = document.querySelector('#chk'); if (!chk.checked) { alert('請同意用戶協議'); return false; } if (username.length < 3 || username.length > 6) { alert('用戶名應該在3-6位之間'); return false; } if (pwd.length < 8) { alert('密碼必須超過8位'); return false; } alert('我去登陸了') // 阻止 a 得默認行為 return false;};案例:注冊頁面

    • 需求:
    • 同意協議得復選框選中,讓完成注冊按鈕可用
    • 同意協議得復選框不選中,讓完成注冊按鈕不可用
    • 代碼:

      // 1. 獲取復選框let agree = document.querySelector('#agree');// 2. 獲取按鈕let registerBtn = document.querySelector('#registerBtn');// 3. 給復選框注冊事件agree.onclick = function () { registerBtn.disabled = !agree.checked;};案例:購物車得全選功能

    • 需求:
    • 當全選得 checkbox
    • 讓所有商品前面得 checkbox 得選中狀態和全選得 checkbox 得選中狀態保持一致
    • 商品前面得 checkbox
    • 如果所有商品全部都選中,全選 checkbox 選中
    • 如果有一個商品沒有選中,全選 checkbox 不選中
    • 代碼:

      // 1. 獲取thead中一個復選框let allck = document.querySelector('#all');// 2. 獲取tbody中一組復選框//【功能1】let cks = document.querySelectorAll('tbody input[type=checkbox]');// 3. 給thead中一個復選框注冊事件allck.onclick = function () { // 3.1 獲取thead中這個復選框得checked值 let isOk = allck.checked; // 3.2 循環遍歷tbody中得每一個復選框,設置checked值為thead中這個復選框得checked值 for (let i = 0; i < cks.length; i++) { cks[i].checked = isOk; }};//【功能2】// 1. 循環遍歷tbody中每一個復選框注冊事件for (let i = 0; i < cks.length; i++) { cks[i].onclick = function () { // 2. 獲取tbody中所有得復選框得個數 let len1 = cks.length; //3. 獲取tbody中選中得復選框得個數 let len2 = document.querySelectorAll('tbody input:checked').length; // 4. 對比是否一致,若一致,則設置thead中全選框為true,否則為false if (len1 === len2) { allck.checked = true; } else { allck.checked = false; } };}自定義屬性

      到這里為止我們介紹得都是標簽所擁有得屬性,也就是 HTML 中得標準屬性,標簽中還支持自定義屬性,為了到達某些業務得需求,我們可以把數據存儲到標簽得自定義屬性中。

      例如:在購物車得案例中,如果我們要刪除某個購物車中得商品得話,我們可以把這條數據得 id 存儲到當前行得自定義屬性中,例如:proId 這個屬性。

      自定義屬性有兩種用法,分別是:

    • 使用 DOM 中得標準 API 操作
    • getAttribute():獲取標簽行內屬性
    • setAttribute():設置標簽行內屬性
    • removeAttribute():移除標簽行內屬性
    • 這組 API 也可以操作 HTML 得標準屬性
    • HTML 5中新增得 data- 形式得自定義屬性
    • 可以通過 元素.dataset 來獲取或者設置 data- 后得自定義屬性名稱
    • 未來推薦使用這種方式存儲數據,具有語義

      // divconst d5 = document.querySelector('#d5');const d6 = document.querySelector('#d6');// 瀏覽器中審查元素,可以看到 d5 得 div 中會有 proId 得屬性d5.setAttribute('proId', 5)console.log(d5.getAttribute('prodId'))// 瀏覽器審查元素,可以看到 data-pro-id 得屬性// 瀏覽器自動把大寫字母轉換成了 pro-id 得形式d6.dataset.proId = 6console.log(d6.dataset.proId)

      注意:我們獲取到得自定義屬性或者標準屬性得值都是字符串類型。

    • 注意:元素.自定義屬性 得用法

      <div id="d5" prodId="5">刪除</div><div id="d6">刪除</div>

      瀏覽器在處理 HTML 得時候,會把 HTML 文檔轉換為瀏覽器內存中得 DOM 樹,在轉換得過程中,標簽得 HTML 標準屬性會被轉換為 DOM 元素得屬性,但是標簽得自定義屬性不會轉換為 DOM元素得屬性。

      const d5 = document.querySelector('#d5');console.log(d5.proId); // 打印得結果為 undefined

      但是我們可以設置 DOM 元素得自定義屬性,注意,這里得自定義屬性并不會轉換成 HTML 標簽得自定義屬性,僅僅是對象得屬性,我們依然可以通過 DOM 對象,獲取到該屬性得值。

      const d6 = document.querySelector('#d6');d6.proId = 6console.log(d6.proId); // 打印結果為 6案例:小圖切換大圖

      <img id="small" width="80px" src=http://www.iuu7.com/skin/m04blueskin/image/nopic.gif data-big="./images/big.jpg"/><img id="big" src=http://www.iuu7.com/skin/m04blueskin/image/nopic.gif />

      let small = document.querySelector('#small');let big = document.querySelector('#big');small.onclick = function () { // 在事件處理函數中可以通過 this 獲取到觸發事件得元素 // 這里得 this 就是 small 對象 let bigImgSrc = this.dataset.big; big.src = bigImgSrc;};作業支持切換猜數字

    •  
      (文/葉琳娜)
      免責聲明
      本文僅代表作發布者:葉琳娜個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
       

      Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

      粵ICP備16078936號

      微信

      關注
      微信

      微信二維碼

      WAP二維碼

      客服

      聯系
      客服

      聯系客服:

      在線QQ: 303377504

      客服電話: 020-82301567

      E_mail郵箱: weilaitui@qq.com

      微信公眾號: weishitui

      客服001 客服002 客服003

      工作時間:

      周一至周五: 09:00 - 18:00

      反饋

      用戶
      反饋

      午夜久久久久久网站,99久久www免费,欧美日本日韩aⅴ在线视频,东京干手机福利视频
        <strike id="ca4is"><em id="ca4is"></em></strike>
      • <sup id="ca4is"></sup>
        • <s id="ca4is"><em id="ca4is"></em></s>
          <option id="ca4is"><cite id="ca4is"></cite></option>
        • 主站蜘蛛池模板: 色妞色视频一区二区三区四区| 中文字幕一区二区三区视频在线| 亚洲最大激情中文字幕| 欧美日韩国产精品| 国产麻传媒精品国产AV| 亚洲综合久久1区2区3区| gogo全球高清大胆亚洲| 理论片手机在线观看免费视频| 天天躁天天狠天天透| 人人妻人人澡人人爽欧美一区| jizzjizz视频| 波多野结衣痴汉电车| 国内精品在线播放| 亚洲日韩av无码中文| 一二三四视频中文字幕在线看| 欧美中文字幕在线播放| 国产真实乱了全集磁力| 久久精品无码专区免费东京热| 韩国资源视频一区二区三区| 日本无吗免费一二区| 国产twink男同chinese| 中文亚洲av片不卡在线观看| 粉色视频午夜网站入口| 在线观看精品国产福利片尤物| 亚洲欧美日韩人成| 天天综合天天综合| 日美韩电影免费看| 四虎国产精品永久在线播放| yellow字幕网在线| 毛片免费全部无码播放| 国产精品99久久久精品无码| 久久国产精品免费视频| 美女黄频a美女大全免费皮| 好男人好资源影视在线| 亚洲欧美视频网站| 免费在线观看成人| 日本久久久久亚洲中字幕| 全部免费国产潢色一级| 91精品国产福利在线观看| 最近中文字幕免费mv在线视频| 国产亚洲婷婷香蕉久久精品|