DOM

  • 關(guān)鍵詞:DOM
DOM 帶來了動(dòng)態(tài)修改文檔的能力

1. DOM 對象的 'innerText' 和 'innerHTML' 有什么區(qū)別处窥?

  • 返回內(nèi)容不同
  • innerText:返回元素內(nèi)包含的文本內(nèi)容涨冀;若存在嵌套,按序由淺至深拼接文本內(nèi)容
  • innerHTML:返回元素內(nèi)包含的HTML結(jié)構(gòu)柜裸,在寫入時(shí)自動(dòng)構(gòu)建 DOM

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

  • 包含節(jié)點(diǎn)的類型不同
  • elem.children:元素集合掷漱,只包含元素(HTML標(biāo)簽)
  • elem.childNodes:節(jié)點(diǎn)集合粘室,可包含元素(HTML標(biāo)簽)、文本節(jié)點(diǎn)卜范、注釋節(jié)點(diǎn)

3.1 查詢元素有幾種常見的方法?

  • getElementById():返回指定條件的元素節(jié)點(diǎn)鹿榜,匹配 ID屬性海雪;若無,則返回null
  • getElementsByClassName():返回指定條件的元素節(jié)點(diǎn)舱殿,匹配 class屬性 奥裸;返回值為 HTMLCollection類型的對象
  • getElementsByTagName():返回所有指定標(biāo)簽的元素;返回值為HTMLCollection類型的對象

3.2 ES5的元素選擇方法是什么?

  • querySelector():返回指定的元素節(jié)點(diǎn)沪袭,匹配CSS選擇器
  • 若多個(gè)節(jié)點(diǎn)滿足匹配條件湾宙,則返回第一個(gè)匹配的節(jié)點(diǎn)
  • 若沒有節(jié)點(diǎn)滿足匹配條件,則返回null冈绊。
  • querySelectorAll():返回指定的所有節(jié)點(diǎn)侠鳄,匹配CSS選擇器
  • 返回所有、滿足任一匹配條件(參數(shù)中任一選擇器)的元素
  • 該方法參數(shù)可以是:以逗號(hào)分隔的多個(gè)CSS選擇器
  • 返回值為NodeList類型的對象

4.1 如何創(chuàng)建一個(gè)元素死宣?

  • 方法
    createElement():用來生成HTML元素節(jié)點(diǎn)
    createTextNode():用來生成文本節(jié)點(diǎn)
    createDocumentFragment():用來生成一個(gè)DocumentFragment對象
  • DocumentFragment對象:用來生成較復(fù)雜的DOM結(jié)構(gòu)伟恶,然后將DocumentFragment對象插入當(dāng)前文檔,這樣擁有更好的性能表現(xiàn)
  • 例子
var newDiv = document.createElement("div");
var newContent = document.createTextNode("Hello");
newDiv.appendChild(newContent);

4.2如何給元素設(shè)置屬性毅该?如何刪除屬性

  • 方法
    getAttribute():用于獲取元素的attribute值
    createAttribute():用于生成一個(gè)新的屬性對象節(jié)點(diǎn)博秫,并返回它
    setAttribute():用于設(shè)置元素屬性
    romoveAttribute():用于刪除元素屬性
  • 例子:設(shè)置元素屬性
// 方法一
var newDiv = document.getElementById("div");
var a = document.createAttribute("newAttrib");
a.value = "newValue";
newDiv.setAttributeNode(a);
// 方法二
var newDiv = document.getElementById("div");
newDiv.setAttribute("id", "header");
  • 例子:刪除元素屬性
var newDiv = document.getElementById("div");
newDiv.setAttribute("id", "header");
newDiv.removeAttribute('id');

5. 如何給頁面元素添加子元素?如何刪除頁面元素下的子元素?

  • 方法
    appendChild():用于在元素末尾添加元素
    insertBefore():用于在元素之前插入元素
    replaceChild():用于替換某個(gè)元素
    removeChild():用于刪除某個(gè)元素
    cloneNode():用于復(fù)制元素
  • 例子:給頁面元素添加子元素
var newDiv = document.createElement("div");
var newContent = document.createTextNode("Hello");
newDiv.appendChild(newContent);
  • 例子:刪除頁面元素的子元素
var newDiv = document.createElement("div");
var newContent = document.createTextNode("Hello");
newDiv.appendChild(newContent);
newDiv.removeChild(newContent);

6. element.classList 有哪些方法眶掌?

  • 方法
    classList.contains:用于判斷一個(gè)元素的 class 列表中是包含某個(gè) class
    classList.add():用于添加一個(gè)或多個(gè) class
    classList.remove:用于刪除一個(gè)或多個(gè) class
  • 例子:添加一個(gè)class挡育?線上代碼栗子
var getE = document.getElementById("newDiv");
getE.classList.add("mystyle");
  • 例子:如何判斷一個(gè)元素的 class 列表中是否包含某個(gè) class?
var getE = document.getElementById("newDiv");
getE.classList.add("mystyle");
getE.classList.contains("newDiv");  // false
getE.classList.contains("mystyle");  // true
var getE = document.getElementById("newDiv");
getE.classList.add("mystyle");
getE.classList.remove("mystyle");

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>

選中 li標(biāo)簽、btn標(biāo)簽

// 選中 li 標(biāo)簽
var li1 = getElementsByTagName("li");  // 第一種
var li2 = querySelectorAll("ul>li")寝殴;  // 第二種
// 選中 btn 標(biāo)簽
var btn1 = getElementsByClassName("btn"); // 第一種
var btn2 = getElementsByTagName("button");  // 第二種
var btn3 = querySelector("div>button");  // 第三種

本文章著作權(quán)歸饑人谷和作者所有蒿叠,轉(zhuǎn)載須說明來源!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蚣常,一起剝皮案震驚了整個(gè)濱河市市咽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抵蚊,老刑警劉巖施绎,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溯革,死亡現(xiàn)場離奇詭異,居然都是意外死亡谷醉,警方通過查閱死者的電腦和手機(jī)致稀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俱尼,“玉大人抖单,你說我怎么就攤上這事∮霭耍” “怎么了矛绘?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長刃永。 經(jīng)常有香客問我货矮,道長,這世上最難降的妖魔是什么斯够? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任囚玫,我火速辦了婚禮,結(jié)果婚禮上读规,老公的妹妹穿的比我還像新娘抓督。我一直安慰自己,他們只是感情好掖桦,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布本昏。 她就那樣靜靜地躺著,像睡著了一般枪汪。 火紅的嫁衣襯著肌膚如雪涌穆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天雀久,我揣著相機(jī)與錄音宿稀,去河邊找鬼。 笑死赖捌,一個(gè)胖子當(dāng)著我的面吹牛祝沸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播越庇,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼罩锐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了卤唉?” 一聲冷哼從身側(cè)響起涩惑,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桑驱,沒想到半個(gè)月后竭恬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跛蛋,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年痊硕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赊级。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡岔绸,死狀恐怖理逊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情亭螟,我是刑警寧澤挡鞍,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站预烙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏道媚。R本人自食惡果不足惜扁掸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望最域。 院中可真熱鬧谴分,春花似錦、人聲如沸镀脂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽薄翅。三九已至沙兰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間翘魄,已是汗流浹背鼎天。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暑竟,地道東北人斋射。 一個(gè)月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像但荤,于是被迫代替她去往敵國和親罗岖。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

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

  • 題目1: dom對象的innerText和innerHTML有什么區(qū)別腹躁? innerText返回的是元素內(nèi)包含的文...
    Feiyu_有貓病閱讀 377評論 0 0
  • 本文整理自《高級(jí)javascript程序設(shè)計(jì)》 DOM(文檔對象模型)是針對HTML和XML文檔的一個(gè)API(應(yīng)用...
    SuperSnail閱讀 582評論 0 1
  • 題目1: dom對象的innerText和innerHTML有什么區(qū)別桑包? innerText是一個(gè)可寫屬性,返回元...
    Taaaaaaaurus閱讀 201評論 0 1
  • 本章內(nèi)容 理解包含不同層次節(jié)點(diǎn)的 DOM 使用不同的節(jié)點(diǎn)類型 克服瀏覽器兼容性問題及各種陷阱 DOM 是針對 HT...
    悶油瓶小張閱讀 642評論 0 1
  • 我想說一段有些枯燥的旅行泳梆。 我對一些古跡有一種“幻想式”的喜歡,就是我并不清楚那里有什么榜掌,但是因?yàn)樗惻f优妙,如同年久...
    吳俐溫哪閱讀 1,275評論 3 0