?.DOM操作

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

  • innerHTML屬性返回調(diào)用元素的所有子節(jié)點(diǎn),包括元素、注釋、文本
  • innerText屬性返回元素包含的所有文本內(nèi)容,包括子元素的文本
  • 在通過innerText和innerHTML寫入值時,會刪除元素所有子節(jié)點(diǎn),插入文本節(jié)點(diǎn)。不過innerText寫入的全部為文本,而innerHTML可以是其他內(nèi)容
<div id="div1">
    <p>123</p>
    <span>123</span>
</div>
<div id="div2">
    <p>456</p>  
    <span>456</span>
</div>
<script>
    var a = document.getElementById("div1")
    var b = document.getElementById("div2")
    a.innerText = "<p>這是innerText</p>"
    b.innerHTML = "<p>這是innerHTML</p>"
</script>
innerHTML和innerText在頁面中的輸出
<div id="div1">
        <p>innerText</p>
        <span>innerText</span>
</div>
<div id="div2">
    <p>innerHTML</p>
    <span>innerHTML</span>
</div>
<script>
    var a = document.getElementById("div1")
    console.log(a)
    console.log(a.innerText)

    var b = document.getElementById("div2")
    console.log(b)
    console.log(b.innerHTML)
</script>
innerText和innerHTML對應(yīng)的內(nèi)容

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

參考
1. JavaScript中Element與Node的區(qū)別,children與childNodes的區(qū)別

Node(節(jié)點(diǎn))是DOM層次結(jié)構(gòu)中的任何類型的對象的通用名稱,Node有很多類型,如元素節(jié)點(diǎn),文本節(jié)點(diǎn),注釋節(jié)點(diǎn)等,而Element繼承Node類,是其中一種,同時擴(kuò)展了一些屬性。
elem.children返回的是Element類,而elem.childNodes返回的是Node類

節(jié)點(diǎn)類型 NodeType 描述
元素 ELEMENT_NODE 1 <p><div>
文本 TEXT_NODE 3 /
注釋 COMMENT_NODE 8 <!--123-->
文檔 DOCUMENT_NODE 9 /
<div id="div1">
    <p>innerText</p>  <!--lala-->
    <span>innerText</span>
</div>
<div id="div2">
    <p>innerHTML</p>  <!--lala-->
    <span>innerHTML</span>
</div>
<script>
    var a = document.getElementById("div1")
    console.log(a.children)  //

    var b = document.getElementById("div2")
    console.log(b.childNodes)  //
</script>
children和childNodes 輸出

3. 查詢元素有幾種常見的方法?ES5的元素選擇方法是什么?

//返回id為div1的一個對象
document.getElementById('div1')
//返回的類數(shù)組
document.getElementsByTagName('p')
document.getElementsByClassName('attr1 attr2')
document.getElementsByName('name')
//ES5 selectors類似CSS選擇器
//返回符合第一個
document.querySelector(selectors)
//返回符合的全部  
document.querySelectorAll(selectors)

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

//生成HTML元素節(jié)點(diǎn)
document.createElement('div')
//生成文本節(jié)點(diǎn)
document.createTextNode('Hello')
//DocumentFragment對象是一個存在于內(nèi)存的DOM片段,但是不屬于當(dāng)前文檔,常常用來生成較復(fù)雜的DOM結(jié)構(gòu),然后插入當(dāng)前文檔。這樣做的好處在于,因為DocumentFragment不屬于當(dāng)前文檔,對它的任何改動,都不會引發(fā)網(wǎng)頁的重新渲染,比直接修改當(dāng)前文檔的DOM有更好的性能表現(xiàn)。
document.createDocumentFragment()

//設(shè)置屬性
document.setAttribute('name','value')
//刪除屬性
document.romoveAttribute('name')

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

//添加子元素
//appendChild()
var aChild = element.appendChild(aChild);  //語法,element元素末尾添加aChild

var p = document.createElement("p");  //示例,創(chuàng)建p元素
document.body.appendChild(p);         //將p元素添加到body末尾

//insertBefore()
//語法 在parentNode內(nèi),將newNode添加到referenceNode前,如果refereNode省略則加在末尾
var insertedNode = parentNode.insertBefore(newNode, referenceNode); 

//刪除頁面元素下的子元素
parentNode.removeChild(childNode);

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

//add(value):將給定字符串值加入列表,如已存在,就不添加
//添加"current"類
div.classList.add("current");

//remove(value)
//刪除"disabled"類
div.classList.remove("disabled");

//contains(value):判斷是否存在給定值,存在返回true,否則false
div.classList.contains("bd")

//toggle(value):如果列表中已存在,刪掉;不存在,就添加
//切換"user"類
//div.classList.toggle("user");

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>
<script>
//li
    document.getElementsByTagName('li')
    document.querySelectorAll('li')
//.btn
    document.getElementsByClassName('btn')
    document.querySelector('.btn')
</script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評論 6 540
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,275評論 3 428
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,904評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,368評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,736評論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,919評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,481評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,235評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,427評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,656評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,160評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,380評論 2 379

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

  • 基本介紹 文檔對象模型 (DOM) 是HTML和XML文檔的編程接口。它給文檔(結(jié)構(gòu)樹)提供了一個結(jié)構(gòu)化的表述并且...
    草鞋弟閱讀 450評論 0 0
  • 題目1: dom對象的innerText和innerHTML有什么區(qū)別? innerText是一個可寫屬性,返回元...
    QQQQQCY閱讀 196評論 0 0
  • 題目1: dom對象的innerText和innerHTML有什么區(qū)別? innerText是一個可寫屬性,返回元...
    Taaaaaaaurus閱讀 214評論 0 1
  • 1.概述 1.1DOM DOM是JavaScript操作網(wǎng)頁的接口,全稱為“文檔對象模型”(Document Ob...
    徐國軍_plus閱讀 388評論 0 3
  • 你曾發(fā)過不能輕易說的晚安 如今一句, 拜 便讓我徹夜難眠 總認(rèn)為不合時機(jī) 可你,是我一直追尋的夢啊
    Dolph閱讀 124評論 0 1