DOM操作

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

innerText:返回元素包含的文本內(nèi)容,是可以修改的;多層次會從外到內(nèi)拼接文本內(nèi)容。
innerHtml:返回的是元素的DOM結(jié)構(gòu),在寫入的時候會自動構(gòu)建DOM;

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

elem.children:子元素列表(HTMLCollection);
elem.childNodes:子元素列表(NodeList);
兩者主要有兩點(diǎn)不同:
1 包含節(jié)點(diǎn)的類型;
(1)NodeList 是一個節(jié)點(diǎn)的集合,既可以包含元素也可以包含其他元素和其他節(jié)點(diǎn)(文本節(jié)點(diǎn),注釋節(jié)點(diǎn));
(2)HTMLCollection是元素集合,只有Element;Element繼承自Node,是Node的一種。在HTML中,它一般是HTML元素,例如p標(biāo)簽
2 使用方法
相同點(diǎn):
(1) 他們都有l(wèi)ength屬性;
(2) 都有元素的getter,叫做item,可以傳入索引值取得元素;
(3) 都是類數(shù)組;
不同點(diǎn):
HTMLCollection還有一個nameItem()方法,可以返回集合中name屬性和id屬性值的元素(部分瀏覽器也支持NodeList的nameItem()方法),HTMLCollection的item()方法通過屬性獲取元素可以支持id和name獲得元素,而NodeList對象只支持id。

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

getElementById(),getElementsByClassName(),getElementsByTagName(),getElementsByName();
ES5元素選擇方法:
querySelector():返回匹配指定CSS選擇器的元素節(jié)點(diǎn),如果多個匹配只返回第一個。//PS無法選中CSS偽元素。
querySelectorAll():返回匹配指定CSS選擇器的所有節(jié)點(diǎn),返回的是NodeList類型的對象。NodeList對象是靜態(tài)對象。

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

創(chuàng)建:
document.createElement() 創(chuàng)建html元素節(jié)點(diǎn);
document.createTextNode() 創(chuàng)建文本節(jié)點(diǎn);
document,createDocumentFragment() 創(chuàng)建一個DocumentFragment對象。
設(shè)置屬性:
getAttribute()獲取元素的attribute的值;
createAttribute()方法生成一個新的屬性對象節(jié)點(diǎn),并返回它。參數(shù)是name,是屬性的名稱。
setAttribute()方法用于設(shè)置元素的屬性

var node =document.getElementById('div1');
node.setAttribute('my_attrib','newVal')

刪除屬性:
removeAttribute()用于刪除元素屬性。

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

添加子元素:appendChild()在元素的末尾添加新元素;insertBefore在某個元素之前添加新元素。
刪除子元素:removeChild() //parentNode.removeChild(childNode);

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

element.classList有如下幾個方法:
add(class1,class2)增加一個或多個類名;
contains(class)返回布爾值,是否包含某個類名;
item(index)返回類名在元素中的索引值;
remove(class1, class2, ...)移除一個或多個類名;
toggle(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>
<script>
    var lis = document.getElementsByTagName('li');
    var btn = document.getElementsByClassName('btn')[0];
</script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 基本介紹 文檔對象模型 (DOM) 是HTML和XML文檔的編程接口。它給文檔(結(jié)構(gòu)樹)提供了一個結(jié)構(gòu)化的表述并且...
    草鞋弟閱讀 588評論 0 0
  • 1.dom對象的innerText和innerHTML有什么區(qū)別? innerText:innerText是一個可...
    饑人谷_有點(diǎn)熱閱讀 919評論 0 0
  • dom對象的innerText和innerHTML有什么區(qū)別? innerText是一個可寫屬性,返回元素內(nèi)包含的...
    魔王卡卡閱讀 371評論 0 0
  • dom對象的innerText和innerHTML有什么區(qū)別? Element.innerText屬性返回該元素包...
    饑人谷_全閱讀 389評論 0 0
  • 1 大學(xué)期間,L的表現(xiàn)一直很優(yōu)秀,學(xué)習(xí)成績名列前茅,各類的比賽也會參加,可是每次學(xué)期末評選獎學(xué)金的時候,總是會被排...
    北城遠(yuǎn)在北方閱讀 4,425評論 2 12

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