Q1: dom對象的innerText和innerHTML有什么區(qū)別?
在dom中innertext是一個可寫屬性瞭空,返回元素內(nèi)包括的文本內(nèi)容揪阿,在多層次時會由淺到深的順序進行拼接。
innerHTML咆畏、outerHTML與innertext相類似南捂,差別只體現(xiàn)在返回元素的結(jié)構(gòu)上。
而innerHTML和outerHTML的差別體現(xiàn)在顯示代碼是否包含其本身旧找。
Q2:elem.children和elem.childNodes的區(qū)別溺健?
children:只會查詢子元素的列表,不包含其文本節(jié)點;
childNodes:會查詢子元素的列表鞭缭,包含其文本節(jié)點剖膳。
Q3:查詢元素有幾種常見的方法?ES5的元素選擇方法是什么?
- getElementsById():返回匹配指定的ID屬性的元素節(jié)點岭辣,若是未匹配的吱晒,則返回null。
- getElementsByClassName():返回一個類似數(shù)組的對象沦童,包括了所有class名字符合指定條件的元素(搜索范圍包括本身仑濒,元素變化實時反映在返回結(jié)果中)。
getElementsByClassName方法的參數(shù)偷遗,可以是多個空格分隔的class名字墩瞳,返回同時具有這些節(jié)點的元素。 - getElementByTagName():返回所有指定標簽的元素(包括本身)氏豌,返回值為HTMLCollection對象喉酌,搜索結(jié)果是一個動態(tài)的集合,任何元素的變化都實時的反映在結(jié)果中泵喘。
- getElementsByName():用于選擇擁有name屬性的HTML元素泪电,例如:from、img纪铺、fram歪架、embed和object,返回一個NodeList格式的對象霹陡,不會實時反映元素的變化
- querySelector():返回匹配指定的CSS選擇器的元素節(jié)點,若多個匹配點止状,則選取第一個烹棉;若沒有,則返回null怯疤。
- querySelectorAll():選取所有匹配的元素節(jié)點浆洗。
- elementFromPoint():返回位于頁面指定位置的元素。
ES5的元素選擇方法是querySelector()集峦、querySelectorAll()伏社、elementFromPoint()。
Q4:如何創(chuàng)建一個元素塔淤?如何給元素設置屬性摘昌?如何刪除屬性
1.createElement()用來生成HTML元素節(jié)點
var newDiv = document.createElement("div")
2.setAttribute()用于設置元素屬性
var node = documentgetElementById('div1');
node.setAttribute("my_attid","newVal")
3.removeAttribute():用于刪除元素屬性
newDiv.removeAttribute('id')
Q5:如何給頁面元素添加子元素?如何刪除頁面元素下的子元素?
添加元素:
var newDiv = document.reateElement("div");
var newContent = document.CreateTextNode("Hellow");
newDiv.appendchild(newContent);
document.body.appendChild(newDiv)
刪除元素:
document.body.removeChild(newDiv)
Q6:”element.classList有哪些方法高蜂?如何判斷一個元素的 class 列表中是包含某個 class聪黎?如何添加一個class?如何刪除一個class?
添加一個class:元素.classList.add()备恤;
刪除一個class:元素.classList.remove()稿饰;
檢查某個元素是否包含一個class:元素.classList.contains()锦秒。
Q7:如何選中如下代碼所有的li元素? 如何選中btn元素喉镰?
<div class="mod-tabs">
<ul>
<li>list1<li>
<li>list2<li>
<li>list3<li>
</ul>
<button class="btn">點我</btn>
</div>
選擇li元素:
var node = document.querySelector('li');
選擇btn元素:
var btn = document.querySelectorAll('.btn')