題目1: dom對象的innerText和innerHTML有什么區(qū)別独郎?
innerHTML會獲取dom對象內(nèi)的所有字符,包括標簽猛遍。而innerText只包含文本育灸。
題目2: elem.children和elem.childNodes的區(qū)別?
elem.children只包含標簽節(jié)點滩字,而elem.childNodes不僅包含標簽節(jié)點造虏,還有文本節(jié)點(空格或換行也會被包含)。
題目3:查詢元素有幾種常見的方法麦箍?ES5的元素選擇方法是什么?
- getElementById: 返回指定ID的元素節(jié)點漓藕。
- getElementsByClassName: 返回一個類似數(shù)組的對象(HTMLCollection類型的對象),包括了所有class名字符合指定條件的元素(搜索范圍包括本身)挟裂,元素的變化實時反映在返回結(jié)果中享钞。
- getElementsByTagName: 返回指定標簽的元素。
ES5的元素選擇方法: - querySelector 返回匹配指定的CSS選擇器的元素節(jié)點诀蓉。如果有多個節(jié)點滿足匹配條件栗竖,則返回第一個匹配的節(jié)點。如果沒有發(fā)現(xiàn)匹配的節(jié)點渠啤,則返回null狐肢。
- querySelectorAll 返回匹配指定的CSS選擇器的所有節(jié)點,返回的是NodeList類型的對象沥曹。NodeList對象不是動態(tài)集合份名,所以元素節(jié)點的變化無法實時反映在返回結(jié)果中。
題目4:如何創(chuàng)建一個元素妓美?如何給元素設(shè)置屬性僵腺?如何刪除屬性
創(chuàng)建元素:var node = document.createElement('div');
設(shè)置屬性:node.setAttribute('id','color1');
刪除屬性:node.removeAttribute('id');
題目5:如何給頁面元素添加子元素?如何刪除頁面元素下的子元素?
添加:appendChild();
刪除:removeChild();
題目6: element.classList有哪些方法壶栋?如何判斷一個元素的 class 列表中是包含某個 class辰如?如何添加一個class?如何刪除一個class?
- add(class1, class2, ...) 添加類
- contains(class) 判斷是否包含類
- remove(class1, class2, ...) 移除類
- item(index) 返回類名在元素中的索引值贵试。索引值從 0 開始琉兜。
var div = document.createElement('div');
div.classList.add('myclass');
div.classList.contains('myclass');
div.classList.remove('myclass');
題目7: 如何選中如下代碼所有的li元素? 如何選中btn元素锡移?
<div class="mod-tabs">
<ul>
<li>list1</li>
<li>list2</li>
<li>list3</li>
</ul>
<button class="btn">點我</button>
</div>
var liarr = document.getElementsByTagName('li');
console.log(liarr[0].innerHTML);
var btn = document.getElementsByClassName('btn')[0];
console.log(btn.innerHTML);
var liarr = document.querySelectorAll('li');
console.log(liarr[0].innerHTML);
var btn = document.querySelector('.btn');
console.log(btn.innerHTML);