JavaScript分爲 ECMAScript,DOM,BOMcss
Window對象是客戶端JavaScript最高層對象之一,因爲window對象是其它大部分對象的共同祖先,在調用window對象的方法和屬性時,能夠省略window對象的引用。例如:window.document.write()能夠簡寫成:document.write()。html
全部 JavaScript 全局對象、函數以及變量均自動成爲 window 對象的成員。全局變量是 window 對象的屬性。全局函數是 window 對象的方法。node
一些經常使用的Window方法:瀏覽器
window.location 對象用於得到當前頁面的地址 (URL),並把瀏覽器重定向到新的頁面。app
經常使用屬性和方法:函數
location.href 獲取URL location.href="URL" // 跳轉到指定頁面 location.reload() 從新加載頁面
能夠在 JavaScript 中建立三種消息框:警告框、確認框、提示框。字體
當警告框出現後,用戶須要點擊肯定按鈕才能繼續進行操做。this
alert("你看到了嗎?");
當確認框出現後,用戶須要點擊肯定或者取消按鈕才能繼續進行操做。若是用戶點擊確認,那麼返回值爲 true。若是用戶點擊取消,那麼返回值爲 false。spa
confirm("你肯定嗎?")
當提示框出現後,用戶須要輸入某個值,而後點擊確認或取消按鈕才能繼續操縱。若是用戶點擊確認,那麼返回值爲輸入的值。若是用戶點擊取消,那麼返回值爲 null。code
prompt("請在下方輸入","你的答案")
經過使用 JavaScript,咱們能夠在必定時間間隔以後來執行代碼,而不是在函數被調用後當即執行。
js語句一段時間後執行
var t=setTimeout("JS語句",毫秒)
消除settimeout()
clearTimeout(setTimeout_variable)
舉例:
// 在指定時間以後執行一次相應函數 var timer = setTimeout(function(){alert(123);}, 3000) // 取消setTimeout設置 clearTimeout(timer);
按照指定的週期(以毫秒計)來調用函數或計算表達式
setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。
setInterval("JS語句",時間間隔)
取消 setInterval()
clearInterval(setinterval返回的ID值)
舉例:
// 每隔一段時間就執行一次相應函數 var timer = setInterval(function(){console.log(123);}, 3000) // 取消setInterval設置 clearInterval(timer);
應用實例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>timer</title> </head> <body> <div>歡迎matt蒞臨指導</div> <script> function f() { var text1 = document.getElementsByTagName('div')[0]; var text2 = text1.innerText.slice(1,) + text1.innerText.slice(0, 1); text1.innerText=text2 } timer = setInterval(f, 1000) </script> </body> </html>
當網頁被加載時,瀏覽器會建立頁面的文檔對象模型(Document Object Model)。HTML DOM 模型被構造爲對象的樹。
DOM標準規定HTML文檔中的每一個成分都是一個節點(node):
元素即標籤
document.getElementById() 根據ID獲取一個標籤
document.getElementsByClassName() 根據class屬性獲取
document.getElementsByTagName() 根據標籤名獲取
parentElement 父節點標籤元素
children 全部子標籤
firstElementChild 第一個子標籤元素
lastElementChild 最後一個子標籤元素
nextElementSibling 下一個兄弟標籤元素
previousElementSibling 上一個兄弟標籤元素
DOM中的元素操做都是基於父元素,增刪改查都是操做兒子標籤
document.createElement(),JQuery中沒有此項
var divEle = document.createElement("div");
兒子添加,至關於JQuery中的 :$(A).append(B) ,$(A).appendTo(B),$(A).prepend(B),$(A).prependTo(B)
fathernode.appendChild(newnode):追加一個子節點(做爲最後的子節點)
fathernode.insertBefore(newnode,某個節點):把增長的節點放到某個節點的前邊
var imgEle=document.createElement("img"); imgEle.setAttribute("src", "http://image11.m1905.cn/uploadfile/s2010/0205/20100205083613178.jpg"); var d1Ele = document.getElementById("d1"); d1Ele.appendChild(imgEle);
fathernode.removeChild(要刪除的節點):經過父元素調用該方法刪除。
fathernode.replaceChild(newnode, 某個節點)
var divEle = document.getElementById("d1") divEle.innerText divEle.innerHTML
var divEle = document.getElementById("d1") divEle.innerText="1" divEle.innerHTML="<p>2</p>"
屬性分爲標籤自帶和自定義兩類,自定義經過setAttribute等方法,自帶直接經過屬性名操做
var divEle = document.getElementById("d1"); divEle.setAttribute("age","18") divEle.getAttribute("age") divEle.removeAttribute("age") // 自帶的屬性經過屬性名來獲取和設置 imgEle.src imgEle.src="..." 設置
var iEle = document.getElementById("i1"); console.log(iEle.value);
具備value值的標籤:input,select,textarea
JQuery中的屬性操做
$('d1').attr('name'); 獲取
$('d1').attr('name','matt') 設置
element.className 獲取全部樣式類名(字符串)
element.classList 獲取樣式類名(列表)
element.classList.remove(cls) 刪除指定類
element.classList.add(cls) 添加類
element.classList.contains(cls) 存在返回true,不然返回false
element.classList.toggle(cls) 存在就刪除,不然添加
JQuery中的class操做
addClass();// 添加指定的CSS類名。 removeClass();// 移除指定的CSS類名。 hasClass();// 判斷樣式存不存在 toggleClass();// 切換CSS類名,若是有就移除,若是沒有就添加。 $("p").css("color", "red"); //將全部p標籤的字體設置爲紅色
經過style屬性操做
obj.style.backgroundColor="red"
1.對於沒有中橫線的CSS屬性通常直接使用style.屬性名便可。如:
obj.style.margin
obj.style.width
obj.style.left
obj.style.position
2.對含有中橫線的CSS屬性,將中橫線後面的第一個字母換成大寫便可。如:
obj.style.marginTop
obj.style.borderLeftWidth
obj.style.zIndex
obj.style.fontFamily
經常使用事件
onclick 當用戶點擊某個對象時調用的事件句柄。 ondblclick 當用戶雙擊某個對象時調用的事件句柄。 onfocus 元素得到焦點。 // 練習:輸入框 onblur 元素失去焦點。 應用場景:用於表單驗證,用戶離開某個輸入框時,表明已經輸入完了,咱們能夠對它進行驗證. onchange 域的內容被改變。 應用場景:一般用於表單元素,當元素內容被改變時觸發.(select聯動) onkeydown 某個鍵盤按鍵被按下。 應用場景: 當用戶在最後一個輸入框按下回車按鍵時,表單提交. onkeypress 某個鍵盤按鍵被按下並鬆開。 onkeyup 某個鍵盤按鍵被鬆開。 onload 一張頁面或一幅圖像完成加載。 onmousedown 鼠標按鈕被按下。 onmousemove 鼠標被移動。 onmouseout 鼠標從某元素移開。 onmouseover 鼠標移到某元素之上。 onselect 在文本框中的文本被選中時發生。 onsubmit 確認按鈕被點擊,使用的對象是form。
<div id="d1" onclick="changeColor(this);">點我</div> <script> function changeColor(ths) { ths.style.backgroundColor="green"; } </script>
this是實參,表示觸發事件的當前元素。
<div id="d2">點我</div> <script> var divEle2 = document.getElementById("d2"); divEle2.onclick=function () { this.innerText="呵呵"; } </script>
實例:省市選擇框
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>mi</title> <!-- <link rel="stylesheet" href="002.css">--> </head> <body> <div></div> <select name="s1" id="s1"> <option value="">請選擇省份</option> </select> <select name="s2" id="s2"> <option>請選擇市</option> </select> </body> <script> data = { '山東省': ['濰坊市', '煙臺市', '青島市'], '河北省': ['石家莊市', '秦皇島市'], '山西省': ['太原市'] }; var s1 = document.getElementById('s1'); var s2 = document.getElementById('s2'); for (var i in data) { var optEle = document.createElement('option'); optEle.innerText = i; s1.appendChild(optEle) } s1.onchange = function () { s2.innerHTML = '<option >請選擇市</option>'; // var selectCity = data[this.value]; var selectCity = data[this.options[this.selectedIndex].innerText]; for (var i = 0; i < selectCity.length; i++) { var optEle = document.createElement('option'); optEle.innerText = selectCity[i]; s2.appendChild(optEle) } } </script> </html>