jQuery面試題(含答案)

jQuery 的核心功能叫元素選擇器。是現階段使用很廣的一個插件

  1. 常見的元素選擇器

    1. 基本選擇器
      $("#myELement") 選擇id值等於myElement的元素,id值不能重複在文檔中只能有一個id值是myElement所以得到的是唯一的元素
      $(“div”) 選擇所有的div標籤元素,返回div元素數組
      $(".myClass") 選擇使用myClass類的css的所有元素
      ("")("*") 選擇文檔中的所有的元素,可以運用多種的選擇方式進行聯合選擇:例如("#myELement,div,.myclass")
      $(“form input”) 選擇所有的form元素中的input元素
      $("#main > *") 選擇id值爲main的所有的子元素
      $(“label + input”) 選擇所有的label元素的下一個input元素節點,經測試選擇器返回的是label標籤後面直接跟一個input標籤的所有input標籤元素
      $("#prev ~ div") 同胞選擇器,該選擇器返回的爲id爲prev的標籤元素的所有的屬於同一個父元素的div標籤

    2. 基本過濾選擇器:
      $(“tr:first”) 選擇所有tr元素的第一個
      $(“tr:last”) 選擇所有tr元素的最後一個
      $(“input:not(:checked) + span”) 過濾掉:checked的選擇器的所有的input元素
      $(“tr:even”) 選擇所有的tr元素的第0,2,4… …個元素(注意:因爲所選擇的多個元素時爲數組,所以序號是從0開始)
      $(“tr:odd”) 選擇所有的tr元素的第1,3,5… …個元素
      $(“td:eq(2)”) 選擇所有的td元素中序號爲2的那個td元素
      $(“td:gt(4)”) 選擇td元素中序號大於4的所有td元素
      $(“td:ll(4)”) 選擇td元素中序號小於4的所有的td元素
      $(":header") 選擇所有標題元素,如h1,h2,h3等
      $(“div:animated”) 選擇所有正在執行動畫效果的元素

  2. attr和prop 有什麼區別?
    attr是html中的表述方式
    prop是js中的表述方式

  3. jQ 對象、 js 對象相互轉換

一、獲取jquery對象

         1.    var  $v = $('#id');

         二、js對象轉化成jquery對象

       1    var doc1=document.getElementById('div1');

             var $d=$(doc1);

        首先獲取js的doc對象,然後直接加上$符號即可

        三、jquery對象轉化成js對象

       1.     var var1= $('#div1')[0]

        2.    var var1=$('#div1').get(0)

  1. jQ 中 each,each 中的 this 指向
1、遍歷對象(有附加參數)

$.each(Object, function(p1, p2) {
   this;    //這裏的this指向每次遍歷中Object的當前屬性值
   p1; p2;   //訪問附加參數
}, ['參數1', '參數2']);
2、遍歷數組(有附件參數)

$.each(Array, function(p1, p2){
   this;    //這裏的this指向每次遍歷中Array的當前元素
   p1; p2;   //訪問附加參數
}, ['參數1', '參數2']);
3、遍歷對象(沒有附加參數)

$.each(Object, function(name, value) {
   this;   //this指向當前屬性的值
   name;   //name表示Object當前屬性的名稱
   value;   //value表示Object當前屬性的值
});
4、遍歷數組(沒有附加參數)

$.each(Array, function(i, value) {
   this;   //this指向當前元素
   i;     //i表示Array當前下標
   value;   //value表示Array當前元素
});

  1. animate(show,hide,toggle,fadeIn)

    1. KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲divPop').show()…(document).click(function(event){$(’#divPop’).hide()});
    2. toggle()切換元素可見狀態:KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲divPop').toggle…(’#divPop’).slideToggle();
    3. fadeIn(),fadeOut(),fadeTo(),如果先設置了fadeTo(),則fadeIn()後不透明度會到達指定的位置;
  2. on,bind,事件名 各種方式綁定事件有什麼區別
    jquery的bind跟on綁定事件的區別:主要是事件冒泡;
    .on方法比.bind方法多一個參數selector
    好處在於.on方法
    原理是事件冒泡,進行事件委託,子元素把事件委託給父元素進行事件處理;
    selectoe好處

    1. 萬一子元素非常多,給每個子元素都添加一個事件,會影響到性能;
    2. 爲動態添加的元素也能綁上指定事件;
  3. (document).ready,(document).ready,(function),window.onload 有什麼區別?

    1. window.onload方法是在網頁中所有的元素(包括元素的所有的關聯文件)完全加載到瀏覽器後才執行,此時,javascript纔可以訪問網頁中的任何元素.

    2. 通過$(document).ready()方法註冊的事件處理程序,在DOM完全就緒時就可以被調用.此時,網頁中的所有元素對jQuery而言,都是可以訪問的,但這並不代表這些元素關聯的文件都已經加載完畢.

  4. 你常用的 jQ 插件有哪些?(輪播圖,放大鏡,表單驗證 jQuery.validate.js)

  5. jQuery 中自定義插件,兩種自定義插件的區別..extend,.extend,.fn.extend

    1. jQuery.extend 此方式定義的插件可以在jQuery對象本身上使用

    2. jQuery.fn.extend 此方式定義的插件只能在jQuery實例上使用

  6. jQuery 的 ajax 請求

    1. 怎麼對ajax請求做全局設置?ajaxSetup
    2. 怎麼設置ajax請求的超時時間?timeout
    3. ajax請求能不能設置成同步的?怎麼做?async
    4. ajax請求如何添加loading效果?
      beforeSend 請求之前觸發
      complete 請求完成之後觸發(不管成功和失敗都會執行)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章