原生js和jQuery主要異同點


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對象。   

    eq0)得到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)    兩個參數均是可選的,默認是逗號分隔,第二個指定數組最大長度。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM