dom對象的innerText和innerHTML有什么區別?
innerText:獲取節點里的所有文本;
innerHTML:獲取節點里的所有信息;
elem.children和elem.childNodes的區別?
elem.children:獲取元素的所有子節點dom對象,不包含自身的文本內容;
elem.childNodes:獲取元素的所有子節點對象,包含自身的文本內容;
elem.childNodes:會把子節點和父標簽間的空格當作文本內容;
查詢元素有幾種常見的方法?
getElementByID():返回匹配指定ID屬性的元素節點;
getElementsByClassName():返回一個類似數組的對象(HTMLCollection類型的對象),包括了所有class名字符合指定條件的元素(搜索范圍包括本身);
getElementsByTagName():返回所有指定標簽的元素(搜索范圍包括本身)。返回值是一個HTMLCollection對象;
getElementsByName():用于選擇擁有name屬性的HTML元素,返回一個NodeList格式的對象
querySelector():返回匹配指定的CSS選擇器的元素節點。如果有多個節點滿足匹配條件,則返回第一個匹配的節點;
querySelectorAll():返回匹配指定的CSS選擇器的所有節點,返回的是NodeList類型的對象;
如何創建一個元素?如何給元素設置屬性?
創建元素有3種方法:
createElement方法用來生成HTML元素節點;
createTextNode方法用來生成文本節點;
createDocumentFragment方法生成一個DocumentFragment對象;
給元素設置屬性:
setAttribute用來設置元素節點屬性。
元素的添加、刪除?
元素添加:appendChild()在元素末尾添加元素;
insertBefore()在某個元素之前插入元素
replaceChild()替換元素;
元素的刪除:removeChild()
DOM0 事件和DOM2級在事件監聽使用方式上有什么區別?
在DOM0級事件處理程序,事件名以'on'開頭,因此click事件的事件處理程序就是onclick、load事件的事件處理程序就是onload。
DOM2級事件定義了兩個方法,用于處理制定和刪除事件處理程序的操作“addEventListener() 和removeEventListener(),接收3個參數:要處理的事件名,作為事件處理程序的函數和一個布爾值;
使用0級事件處理具有跨瀏覽器的優勢;
2級事件處理可以添加多個事件處理程序。
attachEvent與addEventListener的區別?
一、適應的瀏覽器版本不同
attachEvent方法適用于IE addEventListener方法適用于FF
二、針對的事件不同
attachEvent中的事件帶on 而addEventListener中的事件不帶on
三、參數的個數不同
attachEvent方法兩個參數:第一個參數為事件名稱,第二個參數為接收事件處理的函數;
addEventListener 有三個參數:第一個參數表示事件名稱(不含 on,如 "click");第二個參數表示要接收事件處理的函數;第三個參數是一個bool值,一般為false
第三個參數叫做useCapture,是一個boolean值,就是true or false,如果送出true的話就是瀏覽器會使用Capture方式,false的話是Bubbling,只有在特定狀況下才會有影響,通常建議是false,而會有影響的情形是目標元素(target element)有祖先元素(ancestor element),而且也有同樣的事件對應函數,我想,看圖會比較清楚。
解釋IE事件冒泡和DOM2事件傳播機制?
IE事件冒泡:事件發生后先從具體的接收元素,然后逐步向上傳播到不具體的元素。
DOM2事件傳播機制:DOM2級事件規定事件流包括三個階段,事件捕獲階段,處于目標階段,事件冒泡階段,首先發生的是事件捕獲,為截取事件提供機會,然后是實際目標接收事件,最后是冒泡階段.
如何阻止事件冒泡? 如何阻止默認事件?
阻止事件冒泡:stopProprgation();
阻止默認事件:preventDefault();