前端基礎之JavaScript重點之DOM&BOM
阿新 • • 發佈:2017-10-12
接收 eight 顯示 prev doc 事情 event對象 iou 關閉
重點來了 : BOM對象
window對象 :
所有瀏覽器都支持window對象.
概念上講 : 一個html文檔對應一個window對象.
功能上講 : 控制瀏覽器窗口的.
使用上講 : window對象不需要闖將對象,直接使用即可.
window對象方法 : > window.alter : 只做提醒用 > window.confirm : 會返回一個框 布爾值 true或者false > window.prompt : 會返回你輸入的值. >open() : 打開一個新的瀏覽器窗口或查找一個已命名的窗口. >close() : 關閉瀏覽器窗口. >setInterval() : 按照指定的周期(以毫秒計)來調用函數或計算表達式. >clearInterval() : 取消由setInterval設置的timeout. >setTimeout() : 在指定的毫秒數後調用函數或計算表達式. >clearTimeout() : 取消由setTimeout設置的timeout. >scrollTo() : 把內容滾動到指定的坐標.
******DOM (JS中最核心的東西)
DOM : 定義了訪問(查找)和操作html文檔的標準方法.
DOM??樹的目的在於標簽導航.
HTML的每一個標簽都是一個節點對象(Node)
document 和 element 都是節點.
節點 :
1. 在節點數中,頂端節點被稱為根(root).
2. 每個節點都有父節點,除了根.
3. 一個節點可以擁有任意數量的子
4. 同胞是擁有相同父節點的節點
***節點操作
####節點查找 //直接定位 var document.getElementById("idname")("d1"); //標簽對象 ele.getElementByClassName("name")("c1"); //數組對象,哪怕只要一個,它也是數組. document.getElementsByTagName("tagname")("p") //標簽名 ele.getElementsByName("name"); //就比如有些input裏面會定義一個name = "" ) 導航查找 : 通過某個標簽定位某些標簽 previous : 上一個 next : 下一個 sibling : 兄弟姐妹 parentElement //父節點標簽元素 children // 所有子標簽 firstElementChild // 第一個子標簽元素 lastElementChild // 最後一個子標簽元素 nextElementtSibling // 下一個兄弟標簽元素 previousElementSibling // 上一個兄弟標簽元素 ####節點操作 1 創建節點 : document.createElement("標簽名字") 2 添加節點 : ele_parent.appentChild(ele_child) 如果是img標簽的話,用height和width後面直接加數字,不需要寫 引號和px 3 刪除節點 : ele_parent.removeChild(ele_child) 4 替換節點 : ele_parent.replaceChild(ele_child) 5. 節點屬性操作 1.獲取文本節點的值 : innerText innerHTML 2.attribute操作 : elementNode.setAttribute(name,value) elementNode.getAttribute(屬性名) elementNode.removeAttribute("屬性名"); 3.value獲取當前選中的value值 1. input 2. select (selectedIndex) 3. textarea 4.innerHTML給節點添加HTML代碼 : 該方法不是w3c的標準,但是主流瀏覽器支持. tag.innerHTML = "<p>要顯示的內容</p>"; 5.關於class的操作 1.elementNode.className 2.elementNode.classList.add : 添加 3.elementNode.classlist.remove : 刪除 6.改變css樣式 <p id="p1">hello world</p> document.getElementById("p1").style.color="white"; document.getElementById("p1").style.fontSize=36px;
DOM Event(事件)
事件類型 : onclick : 當用戶點擊某個對象時調用的事件句柄. ondblclick : 當用戶雙擊某個對象時調用的事件句柄. onfocus : 元素獲得焦點.--用於輸入框 onblur : 元素失去焦點.--應用場景 : 用於表單驗證,當用戶離開某個輸入框時,代表已經輸入完了. onchange : 域的內容被改變.--應用場景 : 通常用於表單元素,當元素內容被改變時觸發.(多級聯動.) onkeydown : 某個鍵盤按鍵被按下.--應用場景 : 當用戶在最後一個輸入框按下回車鍵時,表單提交. onkeypress : 某個鍵盤按鍵被按下並松開. onkeyup : 某個鍵盤按鍵被松開. onload : 一張頁面或者一幅圖像完成加載. onmousedown : 鼠標按鈕被按下. onmousemove : 鼠標被移動. onmouseout : 鼠標從某元素移開. onmouseover : 鼠標移動到某個元素之上. onmouseleave : 鼠標從某個元素離開. onselect : 文本被選中. onsubmit : 確認按鈕被擊中.
節點屬性 :
<div class="c1">div</div>
1. 文本屬性 :
var ele=document.getElementsByClassName(‘c1‘)[0];
//賦值操作
ele.innerText=‘egon‘
ele.innerHTML=‘egon‘
//取值操作
console.log(ele.innerText);
console.log(ele.innerHTML); #既可以處理純文本,也可以處理標簽.
***
2. class屬性 : ????????????????
console.log(c1.className) //當前標簽的名字,不常用
c1.classList.add(‘c2‘); //把c2的屬性也拿過來用了
c1.classList.remove(‘c2‘); //把c2的屬性給remove掉了
***
事件介紹 :
-
onload
onload屬性開發中,只給body元素加,這個屬性的觸發標誌著頁面內容被加載完成. ---應用場景 : 當有些事情我們希望頁面加載完立刻執行,那麽可以使用該事件屬性.
-
onsubmit
當表單在提交時觸發,該屬性只能給form元素使用. ---引用場景 : 在表單提交前驗證用戶輸入是否正確,如果驗證失敗,則在該方法中阻止表單的提交.
-
事件傳播 :
-
onselect :
-
onchange : 多級聯動
-
onkeydown :
Event對象 : Event對象代表事件的狀態,比如事件在其中發生的元素,鍵盤按鍵的狀態,鼠標的位置,鼠標按鈕的狀態.
事件通常與函數結合使用,函數不會在事件發生前被執行!Event對象在事件發生時系統已經創建好了,並且會在事件函數被調用時傳給事件函數.我們獲得僅僅需要接收一下即可.比如onkeydown,我們想指定哪個鍵被按下了,需要問下Event對象的屬性,這裏就是KeyCode.
-
onmouseout與onmouseleave事件的區別.
前端基礎之JavaScript重點之DOM&BOM