dom對象的innerText和innerHTML有什么區別?
innerText:是一個可寫屬性,返回元素內包含的文本內容,在多層次的時候會按照元素由淺到深的順序拼接其內容。
innerHTML:innerHTML屬性作用和innerText類似,但不返回元素的文本內容,返回元素的HTML結構,在寫入的時候也會自動構建DOM
elem.children和elem.childNodes的區別?
children:子元素列表(HTMLCollection),獲取的節點都是element元素
childNodes:子元素列表(NodeList),獲取的不僅包含element元素,還有文本、屬性、注釋等
查詢元素有幾種常見的方法?ES5的元素選擇方法是什么?
getElementById方法返回匹配指定ID屬性的元素節點。如果沒有發現匹配的節點,則返回null。
getElementByClassName方法返回一個類似數組的對象(HTMLCollection類型的對象),元素的變化實時反應在返回結果中。
getElementsByTagName方法返回所有指定標簽的元素(搜索范圍包括本身)。
getElementsByName方法用于選擇擁有name屬性的Html元素,比如form、img、frame、embed和object
querySelector方法返回匹配指定的css選擇器的元素節點。如果有多個節點滿足匹配條件,返回第一個,如果沒有返回null。
querySelectorAll方法返回匹配指定的CSS選擇器的所有節點,返回的是NodeList類型的對象。
如何創建一個元素?如何給元素設置屬性?如何刪除屬性
createElement( )方法用來生成HTML元素節點
var newDiv = document.createElement("div")
steAttribute( )方法設置元素屬性
var node = document.getElementById("div")
node.setAttribute("my_attrib","newVal")
removeAttribute( )方法刪除元素
node.removeAttributr('id')
如何給頁面元素添加子元素?如何刪除頁面元素下的子元素?
appendChild( )方法在元素末尾添加元素
var newDiv = document.createElement("div")
var newContent = document.createTextNode("hello")
newDiv.appendChild(newContent)
inserBefor( )方法在某個元素之前插入元素
var newDiv = document.createElement("div")
var newContent = document.createTextNode("hello")
newDiv.insertBefore(newContent, newDiv.firstChild)
replaceChild()方法接受兩個參數:要插入的元素和要替換的元素
newDiv.replaceChild(newElement, oldElement)
element.classList有哪些方法?如何判斷一個元素的 class 列表中是包含某個 class?如何添加一個class?如何刪除一個class?
var nodeBox = document.querySelector('.box')
console.log( nodeBox.classList )
nodeBox.classList.add('active') //新增 class
nodeBox.classList.remove('active') //刪除 class
nodeBox.classList.toggle('active') //新增/刪除切換
node.classList.contains('active') // 判斷是否擁有 class
如何選中如下代碼所有的li元素? 如何選中btn元素?
<div class="mod-tabs">
<ul>
<li>list1</li>
<li>list2</li>
<li>list3</li>
</ul>
<button class="btn">點我</button>
</div>
選中所有的li
var listItems = document.querySelectorAll(".mod-tabs li");
選中btn
var btn = document.querySelector(".btn")