dom對象的innerText和innerHTML有什么區(qū)別脉课?
- innerHtml:Element.innerHTML 屬性設置或獲取描述元素后代的HTML語句胃碾。
- innerText:Node.innerText 是一個表示一個節(jié)點及其后代的“渲染”文本內(nèi)容的屬性眨唬。
- 區(qū)別:innerHtml會獲取一個元素的所有后代元素的Html代碼缸托,而innerText只會獲取所有后代元素的文本內(nèi)容
Element.children和Element.childNodes的區(qū)別板驳?
- Element.children 返回一個HTMLCollection , 包含當前元素的所有子元素節(jié)點(Element Node)的有序列表集合。如果沒有子元素節(jié)點那么該集合的長度為0;返回的列表是動態(tài)的伪窖,這意味著它會隨著DOM樹的變化自動更新自身逸寓。
- Element.childNodes 返回一個NodeList, 包含當前元素的所有子節(jié)點的有序列表,子節(jié)點類型包括:元素節(jié)點(Element Node)覆山,注釋節(jié)點(Comment Node)竹伸,文本節(jié)點(Text Node)等,沒有子節(jié)點時簇宽,該集合的長度為0;
- 共性:都為只讀屬性勋篓,不能通過為該屬性賦值來改變父節(jié)點的子節(jié)點內(nèi)容
- 區(qū)別:NodeList集合主要是Node節(jié)點的集合,而HTMLCollection集合主要是Element元素節(jié)點的集合魏割。Node節(jié)點共有12種譬嚣,Element元素節(jié)點只是其中一種。
查詢元素有幾種常見的方法钞它?ES5的元素選擇方法是什么?
- document.getElementById():返回一個匹配特定 ID的元素.
- document.getElementsByClassName():返回一個類似數(shù)組的對象拜银,包含了所有指定 class 名稱的子元素。你也可以在任意元素上調(diào)用getElementsByClassName() 方法遭垛,它將返回的是以當前元素為根節(jié)點尼桶,所有指定class名稱的子元素。
- document.getElementsByTagName():返回一個動態(tài)的包含所有指定標簽名的元素的HTML集合HTMLCollection锯仪。返回的列表是動態(tài)的泵督,這意味著它會隨著DOM樹的變化自動更新自身。
- ES5選擇方法:
- document.querySelector():返回文檔中匹配指定的選擇器組的第一個元素(兼容IE8及以上瀏覽器)庶喜。
- document.querySelectorAll(): 返回與指定的選擇器組匹配的文檔中的元素列表小腊。返回的對象是 NodeList(兼容IE8及以上瀏覽器) 。
如何創(chuàng)建一個元素久窟?如何給元素設置屬性秩冈?如何刪除屬性
- document.createElement():創(chuàng)建一個由tagNamey指定的HTML元素。
- element.setAttribute():設置指定元素上的一個屬性值瘸羡。
- element.removeAttribute(): 從指定的元素中刪除一個屬性漩仙。
- element.getAttribute():返回元素上一個指定的屬性值。如果指定的屬性不存在犹赖,則返回 null 或 "" (空字符串)队他。
如何給頁面元素添加子元素?如何刪除頁面元素下的子元素?
- Node.appendChild():將一個節(jié)點添加到指定父節(jié)點的子節(jié)點列表末尾峻村。
- Node.insertBefore():在當前節(jié)點的某個子節(jié)點之前再插入一個子節(jié)點麸折。
- Node.removeChild():從DOM中刪除一個子節(jié)點。返回刪除的節(jié)點粘昨。
- Node.replaceChild():用指定的節(jié)點替換當前節(jié)點的一個子節(jié)點垢啼,并返回被替換掉的節(jié)點。
element.classList有哪些方法张肾?如何判斷一個元素的 class 列表中是包含某個 class芭析?如何添加一個class?如何刪除一個class?
- Element.classList 是一個只讀屬性吞瞪,返回一個元素的類屬性的實時 DOMTokenList集合(兼容ie10及以上瀏覽器)馁启。方法:
- add():添加指定的類值。如果這些類已經(jīng)存在于元素的屬性中芍秆,那么它們將被忽略惯疙。
- remove():刪除指定的類值。
- item():按集合中的索引返回類值妖啥。
- toggle():當只有一個參數(shù)時:切換 class value; 即如果類存在霉颠,則刪除它并返回false,如果不存在荆虱,則添加它并返回true蒿偎。
- contains():檢查元素的類屬性中是否存在指定的類值。
- 如果要兼容低版本瀏覽器可以使用:Element.className,獲取并設置指定元素的class屬性的值怀读。
如何選中如下代碼所有的li元素酥郭? 如何選中btn元素?
<div class="mod-tabs">
<ul>
<li>list1</li>
<li>list2</li>
<li>list3</li>
</ul>
<button class="btn">點我</button>
</div>
var li = document.querySelectorAll('.mod-tabs li') // 獲取所有l(wèi)i元素
var btn = document.querySelector('.btn') // 獲取btn元素