dom對象的innerText和innerHTML有什么區別?
- innerHtml:Element.innerHTML 屬性設置或獲取描述元素后代的HTML語句。
- innerText:Node.innerText 是一個表示一個節點及其后代的“渲染”文本內容的屬性。
- 區別:innerHtml會獲取一個元素的所有后代元素的Html代碼,而innerText只會獲取所有后代元素的文本內容
Element.children和Element.childNodes的區別?
- Element.children 返回一個HTMLCollection , 包含當前元素的所有子元素節點(Element Node)的有序列表集合。如果沒有子元素節點那么該集合的長度為0;返回的列表是動態的,這意味著它會隨著DOM樹的變化自動更新自身。
- Element.childNodes 返回一個NodeList, 包含當前元素的所有子節點的有序列表,子節點類型包括:元素節點(Element Node),注釋節點(Comment Node),文本節點(Text Node)等,沒有子節點時,該集合的長度為0;
- 共性:都為只讀屬性,不能通過為該屬性賦值來改變父節點的子節點內容
- 區別:NodeList集合主要是Node節點的集合,而HTMLCollection集合主要是Element元素節點的集合。Node節點共有12種,Element元素節點只是其中一種。
查詢元素有幾種常見的方法?ES5的元素選擇方法是什么?
- document.getElementById():返回一個匹配特定 ID的元素.
- document.getElementsByClassName():返回一個類似數組的對象,包含了所有指定 class 名稱的子元素。你也可以在任意元素上調用getElementsByClassName() 方法,它將返回的是以當前元素為根節點,所有指定class名稱的子元素。
- document.getElementsByTagName():返回一個動態的包含所有指定標簽名的元素的HTML集合HTMLCollection。返回的列表是動態的,這意味著它會隨著DOM樹的變化自動更新自身。
- ES5選擇方法:
- document.querySelector():返回文檔中匹配指定的選擇器組的第一個元素(兼容IE8及以上瀏覽器)。
- document.querySelectorAll(): 返回與指定的選擇器組匹配的文檔中的元素列表。返回的對象是 NodeList(兼容IE8及以上瀏覽器) 。
如何創建一個元素?如何給元素設置屬性?如何刪除屬性
- document.createElement():創建一個由tagNamey指定的HTML元素。
- element.setAttribute():設置指定元素上的一個屬性值。
- element.removeAttribute(): 從指定的元素中刪除一個屬性。
- element.getAttribute():返回元素上一個指定的屬性值。如果指定的屬性不存在,則返回 null 或 "" (空字符串)。
如何給頁面元素添加子元素?如何刪除頁面元素下的子元素?
- Node.appendChild():將一個節點添加到指定父節點的子節點列表末尾。
- Node.insertBefore():在當前節點的某個子節點之前再插入一個子節點。
- Node.removeChild():從DOM中刪除一個子節點。返回刪除的節點。
- Node.replaceChild():用指定的節點替換當前節點的一個子節點,并返回被替換掉的節點。
element.classList有哪些方法?如何判斷一個元素的 class 列表中是包含某個 class?如何添加一個class?如何刪除一個class?
- Element.classList 是一個只讀屬性,返回一個元素的類屬性的實時 DOMTokenList集合(兼容ie10及以上瀏覽器)。方法:
- add():添加指定的類值。如果這些類已經存在于元素的屬性中,那么它們將被忽略。
- remove():刪除指定的類值。
- item():按集合中的索引返回類值。
- toggle():當只有一個參數時:切換 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') // 獲取所有li元素
var btn = document.querySelector('.btn') // 獲取btn元素