1、入口函數的不同
js:window.onload = function(){內部放js}
實質就是一個事件,擁有事件的三要素,事件源,事件,事件處理程序。等到所有內容,以及我們的外部圖片之類的文件加載完了之后,才會去執行。只能寫一個入口函數。
jQuery:$(function(){}) 或者 $(document).ready(function(){})
是在 html所有標簽都加載之后,就回去執行。可以寫多個。
2、獲取元素的方式不同
js:常用的以下幾個,除了id,其他的結果都是偽數組
document.getElementsByTagName("a") document.getElementById("demo") document.getElementsByClassName("class") 有兼容性問題 document.getElementsByTagName("*") 獲得所有的標簽,用來遍歷
html5新增選擇器
document.querySelector(selector) 可以通過CSS選擇器的語法找到DOM元素,返回
第一個滿足選擇器條件的元素 一個dom對象
document.querySelectorAll('.item');返回所有滿足該條件的元素 一個元素類型是dom類
型的數組
jQuery:
$(" ") 通過和css雷同的選擇器方式來獲取元素。得到的是jquery對象(dom元素的數組,外加其他一些成員)
。即使寫的是id,唯一的,得到的對象都不是單一的。
本質上jquery方式和qs方式都是獲取DOM數組, 只不過jquery會多一些其他成員,
DOM數組的每一個成員注冊事件不能像jquery一樣直接注冊, 必須分別給每個元素注冊
3、DOM對象和jquery對象的相互轉換
jQuery對象轉換成DOM對象:
方式一:$(“#btn”)[0]
方式二:$(“#btn”).get(0)得到dom對象。
eq(0)得到jquery對象
DOM對象轉換成jQuery對象:
$(document) -> 把DOM對象轉成了jQuery對象
var btn = document.getElementById(“btn”);
btn -> $(btn); $(this)
Jquery得到的元素類型都是對象,內容是偽數組,無論是不是唯一的元素。
4、事件處理程序不同
js:
document.getElementById(“id”).onclick = function(){ // 語句 }
document.getElementById(“id”).addEventListener("click",function(){})
onclick,onfoucs,onblur,fouce(自動獲得),select(自動選擇文本域內容),onmouseover,onmouseout,
oninput/onpropertychange用戶輸入事件,onchange(下拉菜單select內容發生改變時發生事件,如果內容為幾,那么做出什么反應)
jquery
$(“#id”).click(function(){ // 語句 });
5、設置類
js:document.getElementById(“btn”).className = "wrong1 wrong2"
可以同時設置多個類名。
classList屬性(是數組),方法add remove contains toggle
jquery:
6、設置value
7、設置內容,html和text
js:document.getElementById(“btn”).innerHTML = "內容不能為空"
可以是文本,可以是<p>內容不能為空</p>。
jquery:
8、屬性
js:object.getAttribute(attribute) 獲取元素屬性
object.setAttrbute(attribute,value) 設置元素屬性
9、節點操作
js: childNodes屬性 element.childNodes 所有子元素,包括元素節點,文本節點, 屬性節點,甚至包括空格等,所以這個不怎么用。
nodeType屬性 node.nodeType返回結果是數字。1代表元素節點,2屬性節點,3文本節點,
以上這兩個屬性都不建議使用,建議直接使用children。
10、對數組的增刪改查
js:
增:push()最后追加 返回新的長度。
unshift () 開頭添加,返回新的長度。即操作后如果輸出,結果是長度,不是新數組。
刪:pop()刪除最后一個,並返回刪掉的值,此方法無參數。
shift()刪除第一個元素,並返回刪掉的值,無參數。
連接數組:concat() 連接兩個或多個。它不會改變現有的數組,而僅僅會返回被連接數組的一個副本
aa.concat(bb); 結果: [1,3,5,“a”,”b”,”c”];
轉換:join() 數組轉字符串 arrayObject.join([separator]) ,返回新字符串,原數組不會有任何變化。
split() 字符串轉數組 返回新數組,原字符串沒有變化
stringObject.split(separator,howmany) 兩個參數均是可選的,默認是逗號分隔,第二個指定數組最大長度。