DOM操作

題目1: dom對(duì)象的innerText和innerHTML有什么區(qū)別?

  • innerText是一個(gè)可寫屬性, 返回元素內(nèi)包含的文本內(nèi)容,不包括標(biāo)簽, 在多層次的時(shí)候會(huì)按照元素由淺到深的順序拼接其內(nèi)容; 設(shè)定innerText值時(shí),即便輸入的內(nèi)容是HTML標(biāo)簽, 也會(huì)以文本形式顯示; 安全性比使用innerHTML顯示用戶輸入的內(nèi)容要高
  • innerHTML屬性作用與innerText類似, 但不是返回元素的文本內(nèi)容, 而是返回元素的HTML結(jié)構(gòu),包括HTML標(biāo)簽和文本內(nèi)容; 設(shè)定innerHTML值時(shí)如果輸入的內(nèi)容中包含HTML標(biāo)簽, 則會(huì)以HTML形式解析

題目2: elem.children和elem.childNodes的區(qū)別?

  • elem.children只會(huì)返回以HTML標(biāo)簽形成的節(jié)點(diǎn)
  • elem.childNodes會(huì)返回包括文本, 注釋在內(nèi)的所有節(jié)點(diǎn); 使用時(shí)容易出現(xiàn)問(wèn)題, 因此多用elem.children

題目3:查詢?cè)赜袔追N常見(jiàn)的方法?ES5的元素選擇方法是什么?

  • getElementById(): 查詢含指定id的元素節(jié)點(diǎn), 返回單個(gè)對(duì)象,如果沒(méi)有發(fā)現(xiàn)匹配的節(jié)點(diǎn),則返回null。
  • getElementByClassName(): 查詢含指定class的元素節(jié)點(diǎn), 可以是多個(gè)空格分隔的class名字,返回同時(shí)具有這些節(jié)點(diǎn)的元素。
  • getElementByTagName(): 查詢標(biāo)簽為指定tag的元素節(jié)點(diǎn)(搜索范圍包括本身), 返回所有符合條件的元素節(jié)點(diǎn)組成的類數(shù)組對(duì)象; 注意,getElementsByTagName方法會(huì)將參數(shù)轉(zhuǎn)為小寫后,再進(jìn)行搜索。
  • getElementByName(): 查詢name屬性值為指定name的元素節(jié)點(diǎn), 返回所有符合條件的元素節(jié)點(diǎn)組成的類數(shù)組對(duì)象
    ES5:
  • querySelector(): 查詢匹配指定的CSS選擇器的元素節(jié)點(diǎn), 返回第一個(gè)符合條件的對(duì)象; 如果沒(méi)有發(fā)現(xiàn)匹配的節(jié)點(diǎn),則返回null。
  • querySelectorAll(): 返回所有符合條件的的元素節(jié)點(diǎn)組成的類數(shù)組對(duì)象, querySelectorAll方法的參數(shù),可以是逗號(hào)分隔的多個(gè)CSS選擇器,返回所有匹配其中一個(gè)選擇器的元素。

題目4:如何創(chuàng)建一個(gè)元素?如何給元素設(shè)置屬性?如何刪除屬性

  • createElement()
    createElement方法用來(lái)生成HTML元素節(jié)點(diǎn)。
var newDiv = document.createElement("div");

createElement方法的參數(shù)為元素的標(biāo)簽名,即元素節(jié)點(diǎn)的tagName屬性。如果傳入大寫的標(biāo)簽名,會(huì)被轉(zhuǎn)為小寫。如果參數(shù)帶有尖括號(hào)(即<和>)或者是null,會(huì)報(bào)錯(cuò)。

  • setAttribute()

setAttribute()方法用于設(shè)置元素屬性

var node = document.getElementById("div1");
node.setAttribute("my_attrib", "newVal");
  • romoveAttribute()

removeAttribute()用于刪除元素屬性

node.removeAttribute('id');

題目5:如何給頁(yè)面元素添加子元素?如何刪除頁(yè)面元素下的子元素?

  • appendChild()

在元素末尾添加元素

var newDiv = document.createElement("div");
var newContent = document.createTextNode("Hello");
newDiv.appendChild(newContent);
  • insertBefore()

在某個(gè)元素之前插入元素

var newDiv = document.createElement("div");
var newContent = document.createTextNode("Hello");
newDiv.insertBefore(newContent, newDiv.firstChild);
  • 刪除元素使用removeChild()方法即可
parentNode.removeChild(childNode);

題目6: element.classList有哪些方法?如何判斷一個(gè)元素的 class 列表中是包含某個(gè) class?如何添加一個(gè)class?如何刪除一個(gè)class?

var nodeBox = document.querySelector('.box')
console.log( nodeBox.classList )
nodeBox.classList.add('active')   //新增 class
nodeBox.classList.remove('active')  //刪除 class
nodeBox.classList.toggle('active')   //新增/刪除切換
node.classList.contains('active')   // 判斷是否擁有 class

題目7: 如何選中如下代碼所有的li元素? 如何選中btn元素?

<div class="mod-tabs">
   <ul>
       <li>list1</li>
       <li>list2</li>
       <li>list3</li>
   </ul>
   <button class="btn">點(diǎn)我</button>
</div>
var oTab = document.getElementsByClassName('mod-tabs');
  var aLi = oTab.getElementByTagName('li');
  var oBtn = document.getElementsByClassName('btn');
  //ES5
  var oTab = document.querySelectorAll('.mod-tabs li');
  var oBtn = document.querySelector('.btn');
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 基本介紹 文檔對(duì)象模型 (DOM) 是HTML和XML文檔的編程接口。它給文檔(結(jié)構(gòu)樹)提供了一個(gè)結(jié)構(gòu)化的表述并且...
    草鞋弟閱讀 582評(píng)論 0 0
  • 題目1: dom對(duì)象的innerText和innerHTML有什么區(qū)別? 兩個(gè)屬性都是獲取document對(duì)象的文...
    大胡子歌歌閱讀 873評(píng)論 1 3
  • 題目1: dom對(duì)象的innerText和innerHTML有什么區(qū)別? innerText是一個(gè)可寫屬性,返回元...
    QQQQQCY閱讀 282評(píng)論 0 0
  • 早晨5點(diǎn)從依舊漆黑一團(tuán)的黑夜里敲開(kāi)閨蜜家的門,之后兩人輾轉(zhuǎn)9個(gè)小時(shí)到了嵩山景區(qū),愿新年伊始,讓自己用爬山的汗水,愿...
    用愛(ài)溫暖一切閱讀 186評(píng)論 0 1
  • 第三篇,今天是堅(jiān)持寫作的第三天了,突然覺(jué)得不知道寫點(diǎn)什么好了,就聊聊今天的一些想法吧。上班族,每天的工作重復(fù)性很高...
    安安木棉閱讀 258評(píng)論 1 1

友情鏈接更多精彩內(nèi)容