課程任務(wù)
題目1: dom對(duì)象的innerText和innerHTML有什么區(qū)別寨躁?
區(qū)別:
innerText 是一個(gè)可寫(xiě)屬性,返回元素內(nèi)包含的文本內(nèi)容,在多層次的時(shí)候會(huì)按照元素由淺到深的順序拼接其內(nèi)容窜管。(能獲取或修改文本內(nèi)容)
innerHTML屬性作用與innerText類(lèi)似,但不是返回元素的文本內(nèi)容稚机,而是返回元素的HTML結(jié)構(gòu)幕帆,在寫(xiě)入的時(shí)候也會(huì)自動(dòng)構(gòu)建DOM.(能獲取或修改html里的所有內(nèi)容)
例如:
<div>
<p>
123
<span>456</span>
</p>
</div>
外層div的innerText返回內(nèi)容是''123456''
外層div的innerHTML返回內(nèi)容是:''<p>123<span>456</span></p>''
題目2: elem.children和elem.childNodes的區(qū)別?
區(qū)別:
childNodes屬性赖条,標(biāo)準(zhǔn)的失乾,它返回指定元素的子元素集合常熙,包括HTML節(jié)點(diǎn),所有屬性碱茁,文本裸卫。可以通過(guò)nodeType來(lái)判斷是哪種類(lèi)型的節(jié)點(diǎn)纽竣,只有當(dāng)nodeType==1時(shí)才是元素節(jié)點(diǎn)彼城,2是屬性節(jié)點(diǎn),3是文本節(jié)點(diǎn)退个。
children屬性,非標(biāo)準(zhǔn)的调炬,它返回指定元素的子元素集合语盈。經(jīng)測(cè)試,它返回HTML節(jié)點(diǎn)缰泡,甚至不返回文本節(jié)點(diǎn)刀荒。和childNodes 一樣,在Firefox下不支持()取集合元素棘钞。
(對(duì)于DOM元素缠借,children是指DOM Object類(lèi)型的子對(duì)象,不包括tag之間隱形存在的TextNode宜猜,而childNodes包括tag之間隱形存在的TextNode對(duì)象泼返。)
題目3:查詢(xún)?cè)赜袔追N常見(jiàn)的方法?ES5的元素選擇方法是什么?
常見(jiàn)查詢(xún)?cè)胤椒ǎ?/strong>
document.getElementById();
document.getElementsByTagName();
document.getElementsByClassName();
document.getElementsByName();
ES5的元素選擇方法:
document.querySelector();
document.querySelectorAll();
document.ElementFromPoint();
題目4:如何創(chuàng)建一個(gè)元素姨拥?如何給元素設(shè)置屬性绅喉?如何刪除屬性
創(chuàng)建元素:
createElement方法用來(lái)生成HTML元素節(jié)點(diǎn)
var newDiv = document.createElement("div");
create TextNode方法用來(lái)生存文本節(jié)點(diǎn),參數(shù)為所要生成的文本節(jié)點(diǎn)的內(nèi)容:
var newDiv = document.createElement("div")
var newContent = document.createTextNode("Hello");
createDocumentFragment方法生成一個(gè)DocumentFragment對(duì)象叫乌。(DocumentFragment對(duì)象是一個(gè)存在于內(nèi)存的DOM片段柴罐,但是不屬于當(dāng)前文檔,常常用來(lái)生成較復(fù)雜的DOM結(jié)構(gòu)憨奸,然后插入當(dāng)前文檔革屠。這樣做的好處在于,因?yàn)镈ocumentFragment不屬于當(dāng)前文檔排宰,對(duì)它的任何改動(dòng)似芝,都不會(huì)引發(fā)網(wǎng)頁(yè)的重新渲染,比直接修改當(dāng)前文檔的DOM有更好的性能表現(xiàn)板甘。)
var docFragment = document.createDocumentFragment();
給元素設(shè)置屬性:
node.setAttribute('屬性名'国觉, '屬性值');
刪除屬性:
node.removeAttribute('屬性名')
題目5:如何給頁(yè)面元素添加子元素虾啦?如何刪除頁(yè)面元素下的子元素?
給頁(yè)面元素添加子元素:
var newNode = document.createElement("標(biāo)簽名")麻诀;
fatherNode.appendChild(newNode);
刪除頁(yè)面元素下的子元素:
var newNode = document.createElement("標(biāo)簽名")痕寓;
fatherNode.appendChild(newNode);
fatherNode.removeChild(newNode);
題目6: element.classList有哪些方法?如何判斷一個(gè)元素的 class 列表中是包含某個(gè) class蝇闭?如何添加一個(gè)class呻率?如何刪除一個(gè)class?
題目7: 如何選中如下代碼所有的li元素? 如何選中btn元素呻引?
<div class="mod-tabs">
<ul>
<li>list1<li>
<li>list2<li>
<li>list3<li>
</ul>
<button class="btn">點(diǎn)我</btn>
</div>
文章著作權(quán)歸饑人谷_sunny和饑人谷所有礼仗,轉(zhuǎn)載須說(shuō)明來(lái)源