DOM(三)修改元素屬性、樣式、添加/刪除元素

      網友投稿 1145 2025-03-31

      一個元素可以修改它的內容、屬性和樣式。

      目錄

      一、DOM修改元素

      1. 修改屬性

      2. 修改樣式

      二、添加/刪除元素

      1. 添加一個新元素

      2. 優化

      3. 刪除元素

      一、DOM修改元素

      1. 修改屬性

      (1)字符串類型的 HTML 標準屬性(上篇)

      (2)bool 類型的 HTML 標準屬性(上篇)

      (3)自定義擴展屬性

      HTML 標準中沒有規定,程序員根據自身的需要自發添加的屬性就是自定義屬性。

      a:自定義屬性經常用于代替 id、class 或元素選擇器,作為查找觸發事件的元素的條件;CSS 的各種選擇器均有不足之處:

      i. id 選擇器,只能選1個;

      ii. class 選擇器,本職工作是定義樣式,而樣式的修改極其頻繁!如果用class選擇器查找元素綁定事件,一旦樣式類發生變化,程序必然出錯;

      iii. 元素選擇器,因為實現同一種效果,可選的標簽名優很多,沒有統一規定。如果用元素選擇器查找觸發事件的元素,綁定事件,則元素一改,功能又立刻出錯。

      為了解決以上問題,就可以為元素添加自定義屬性,當查找觸發事件的元素時,用屬性選擇器[自定義屬性]來查找即可。

      b:在 js 中訪問自定義擴展屬性

      要注意自定義屬性不能用?.?訪問,因為自定義屬性是后天程序員自發添加的,在 HTML 標準中沒有規定。所有在內存中的元素對象上,不包含自定義擴展屬性!可以用舊核心DOM:

      元素.getAttribute("自定義屬性名")

      元素.setAttribute("自定義屬性名", "屬性值")

      在新版的HTML5標準中,有新的規定:

      ① HTML 中,所有自定義屬性名必須以 data- 開頭:<元素 ??data-自定義屬性名="屬性值">

      ② 如果在 html 中以 data- 開頭了,則 js 中: 元素.dataset.自定義屬性名。

      舉例:點擊按鈕,記錄次數;

      2. 修改樣式

      DOM(三)修改元素屬性、樣式、添加/刪除元素

      (1)修改內聯樣式

      格式:元素.style.css屬性="屬性值"

      由于有些 css 屬性名中帶-,這樣會和減法的 - 號沖突;所以所有帶 - 的 css 屬性名必須去掉 - 變駝峰命名,比如:font-size ->? fontSize、background-color -> backgroundColor、list-style-type -> listStyeType。

      (2)獲取樣式

      使用元素 .style.css 屬性的方式,只能獲取內聯樣式,無法獲得內部或外部樣式表中層疊或繼承來的 css 屬性值。所以今后要想獲得元素任意 css 屬性值,都要獲得計算后的樣式。計算后的樣式就是最終應用到一個元素上的所有 css 屬性的總和。獲取方法分為兩步:

      i. 先獲得計算后的樣式對象:var style=getComputedStyle(元素對象);

      ii. 從完整的樣式對象中只提取個別css屬性:style.css屬性;

      舉例:獲取 h1 元素計算后的樣式;

      Welcome

      Welcome to my web site

      在實際的項目中,很多效果都需要批量修改一個元素的多個 css 屬性,而 .style 一句話只能修改一個 css 屬性,如果修改多個 css 屬性時代碼會很繁瑣;所以只要批量設置一個元素的多個 css 屬性,都用?class 代替 .style。

      二、添加/刪除元素

      1. 添加一個新元素

      (1)創建一個新的空元素對象:

      var 新元素對象=document.createElement("標簽名") //eg: var a=document.createElement("a");//

      (2)為新元素添加必要屬性:

      元素對象.屬性名=新值 //eg: a.innerHTML="go to tmooc"; a.href="http://tmooc.cn"; // go to tmooc

      (3)將新元素添加到 DOM 樹的指定父元素下:

      //在父元素下末尾追加新元素 父元素.appendChild(新元素) //在父元素下插入到一個現有子元素之前 父元素.insertBefore(新元素,現有子元素) //替換父元素下的一個現有的子元素 父元素.replaceChild(新元素,現有子元素)

      舉例:創建一個a元素和一個文本框;

      2. 優化

      修改 DOM 樹的內容會導致重排重繪,但頻繁重排重繪會降低頁面加載的效率,如果父元素已經在頁面上了,要添加多個平級子元素,就要借助于文檔片段對象來實現。

      文檔片段是指內存中臨時保存多個平級子元素的虛擬父元素,使用方法:

      (1)先創建文檔片段對象:

      var 文檔片段對象=document.createDocumentFragment();

      (2)將子元素先添加到文檔片段對象中

      文檔片段對象.appendChild(子元素)

      (3)將文檔片段對象一次性添加到頁面上

      父元素.appendChild(文檔片段對象);

      3. 刪除元素

      父元素.removeChild(子元素)

      舉例:動態生成表格;

      動態創建表格

      姓名 薪資 年齡 刪除

      CSS HTML

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel拆分表格的多種操作:上下和左右區域窗口
      下一篇:沉浸感拉滿!這樣的電影殺約起來
      相關文章
      亚洲精品日韩专区silk| 亚洲精品色在线网站| 亚洲AV无码乱码在线观看牲色 | 亚洲四虎永久在线播放| 亚洲一区二区三区在线观看精品中文 | 亚洲熟妇无码乱子AV电影| 亚洲午夜无码片在线观看影院猛| 亚洲A∨午夜成人片精品网站| 国产亚洲精品VA片在线播放| 最新国产成人亚洲精品影院| 国产精品亚洲片夜色在线| 亚洲国产熟亚洲女视频| 美女视频黄免费亚洲| 亚洲色欲色欲www在线播放 | 国产亚洲一区二区三区在线观看 | 在线观看亚洲AV日韩A∨| 亚洲午夜成人精品无码色欲| 亚洲午夜福利在线视频| 99亚洲乱人伦aⅴ精品| 亚洲AV之男人的天堂| 久久综合亚洲色HEZYO国产| 亚洲综合国产一区二区三区| 精品国产_亚洲人成在线高清| 亚洲av永久无码精品古装片| 亚洲AV第一页国产精品| 亚洲精品国产第1页| 国产色在线|亚洲| 国产综合激情在线亚洲第一页| 国产亚洲精品欧洲在线观看| 精品国产亚洲一区二区在线观看| 亚洲综合伊人久久综合| 久久精品亚洲日本佐佐木明希| 久久久婷婷五月亚洲97号色| 亚洲人成电影网站| 亚洲国产精品自在自线观看| 亚洲第一页日韩专区| 亚洲色精品vr一区二区三区| 亚洲国产成人私人影院| 亚洲一区二区三区国产精品无码| 亚洲性色精品一区二区在线| 夜色阁亚洲一区二区三区 |