1: dom對象的innerText和innerHTML有什么區(qū)別?
-
innerHTML屬性設(shè)置或獲取描述元素后代的HTML語句 -
innerText是一個可寫屬性,返回元素內(nèi)包含的文本內(nèi)容,在多層次的時候會按照元素由淺到深的順序拼接其內(nèi)容
2: elem.children和elem.childNodes的區(qū)別?
-
elem.children子元素列表(HTMLCollection),當(dāng)前元素的子元素的集合 -
elem.childNodes子元素列表(NodeList),當(dāng)前元素的子元素以及文本(空格也算文本)的集合
3:查詢元素有幾種常見的方法?ES5的元素選擇方法是什么?
-
getElementById()方法返回匹配指定ID屬性的元素節(jié)點。如果沒有發(fā)現(xiàn)匹配的節(jié)點,則返回null。這也是獲取一個元素最快的方法 - 諸如此類的還有
getElementByClassName()、getElementsByTagName()、getElementsByName()、querySelector()
4:如何創(chuàng)建一個元素?如何給元素設(shè)置屬性?如何刪除屬性
-
createElement()方法創(chuàng)建元素。 -
setAttribute()方法給元素設(shè)置屬性。 -
removeAttribute()刪除屬性。
5:如何給頁面元素添加子元素?如何刪除頁面元素下的子元素?
-
appendChild()添加在選中元素內(nèi)部的最后 -
insertBefore()添加在選中元素內(nèi)部的開頭 -
removeChild()刪除選中元素的子元素
6: element.classList有哪些方法?如何判斷一個元素的 class 列表中是包含某個 class?如何添加一個class?如何刪除一個class?
| 方法 | 描述 | |
|---|---|---|
| add(class1, class2, ...) | 在元素中添加一個或多個類名。如果指定的類名已存在,則不會添加。 | |
| contains(class) | 返回布爾值,判斷指定的類名是否存在。true表示元素包已經(jīng)包含了該類名;false表示元素中不存在該類名。 | |
| item(index) | 返回類名在元素中的索引值。索引值從 0 開始。如果索引值在區(qū)間范圍外則返回 null。 | |
| remove(class1, class2, ...) | 移除元素中一個或多個類名。注意: 移除不存在的類名,不會報錯。 | |
| toggle(class, true | false) | 在元素中切換類名。第一個參數(shù)為要在元素中移除的類名,并返回 false。 如果該類名不存在則會在元素中添加類名,并返回 true。 第二個是可選參數(shù),是個布爾值用于設(shè)置元素是否強(qiáng)制添加或移除類,不管該類名是否存在。例如:移除一個 class: element.classList.toggle("classToRemove", false); 添加一個 class: element.classList.toggle("classToAdd", true);注意: Internet Explorer 或 Opera 12 及其更早版本不支持第二個參數(shù)。 |
7: 如何選中如下代碼所有的li元素? 如何選中btn元素?

選中所有 li 元素:
document.querySelectorAll('li')
選中 btn 元素:
document.getElementsByClassName('btn')