為static,它們也被當做offsetPatent)
2. 說一下 offsetwidth clientwidth 和 scrollwidth 的區別
Element.offsetWidth //返回元素的水平寬度(包含border,padding和內容;同elm.getBoundingClientRect().width)
Element.scrollWidth //返回滾動元素節點的總寬度
Element.clientWidth //返回元素節點可見部分的寬度(只包含padding和內容高度)
3. 如何獲取一個元素的 css 類
Element.classList //返回當前元素節點的所有class集合
element.getAttribute("class")
Element.className //獲取元素節點的類名
4. 利用原生 dom 怎么獲取某個元素的樣式
document.styleSheets //返回當前網頁的所有樣式表(數組;實時的)
Element.style //返回元素節點的行內樣式,返回CSSStyleDeclaration對象
element.style.cssText //用來讀寫或刪除整個style屬性(內聯)
element.style.getPropertyValue(property) //獲取css內聯屬性
element.getAttribute("style")
styleElement(/linkElement).sheet.cssRules[0].style
//ie8
element.currentStyle[attrName]
//ie9+
window.getComputedStyle(el,null)[attrName]
window.getComputedStyle(el,null).getPropertyValue(attrName)
//偽類
window.getComputedStyle(el,":after")[attrName]
//getComputeStyle()返回一個只讀的類似style的CSSStyleDeclaration對象
5. 上一個問題的 getcomputedstyle 和 直接用 style 是有區別的
Style屬性值只包含HTML中style屬性定義的CSS。
getComputedStyle()可獲得最終應用在元素上的所有CSS屬性對象,包括內聯樣式表單、外部樣式表單及瀏覽器樣式表單級聯樣式。
getComputedStyle()返回值只讀,而style可修改。
getComputedStyle()返回的顏色值格式永遠都是rgb(#,#,#)
6. 如何在某個位置插入一個元素?
Node.appendChild(node) //向節點添加最后一個子節點,DOM或documentFragment
Node.insertBefore(newNode,oldNode) // 在指定子節點之前插入新的子節點
//解析HTML字符串,然后將生成的節點插入DOM樹的指定位置。
Element.insertAdjacentHTML(where, htmlString);
Element.insertAdjacentHTML("beforeBegin", htmlString); // 在該元素前插入
Element.insertAdjacentHTML("afterBegin", htmlString); // 在該元素第一個子元素前插入
Element.insertAdjacentHTML("beforeEnd", htmlString); // 在該元素最后一個子元素后面插入
Element.insertAdjacentHTML("afterEnd", htmlString); // 在該元素后插入
7. innerHtml outerHtml innerText outerText textContent nodeValue區別
Element.innerHTML //返回該元素包含的HTML代碼,可讀寫
Element.outerHTML //返回指定元素節點的所有HTML代碼,包括它自身和包含的的所有子元素,可讀寫
Node.textContent //返回當前節點和它的所有后代節點的文本內容,可讀寫
Node.nodeValue //返回Text或Comment節點的文本值,只讀。對于文檔節點來說, nodeValue返回null. 對于text, comment, 和 CDATA 節點來說, nodeValue返回該節點的文本內容. 對于 attribute 節點來說, 返回該屬性的屬性值.
HTMLElement.outerText //是一個非標準的屬性。作為一個得到器,它返回相同的值作為Node.innerText. 作為一個設置器,它將刪除當前節點并將其替換為給定的文本。
textContent與innerText的區別
Internet Explorer 引入了 node.innerText。意圖類似,但有以下區別:
textContent 會獲取所有元素的內容,包括