jQuery

一、說說庫和框架的區(qū)別?

  • 庫( Library):庫試講代碼集合成的一個產(chǎn)品,供程序員調(diào)用。面對對象的代碼組織形式而成的庫也叫類庫。面向過程的代碼組織形式而成的庫也叫函數(shù)庫。
    在函數(shù)庫中的可以直接使用的函數(shù)叫庫函數(shù)。開發(fā)者在使用庫的時候,只需要使用庫的一部分類或函數(shù),然后繼續(xù)實現(xiàn)自己的功能。
  • 框架(framework):框架則是為解決一個(一類)問題而開發(fā)的產(chǎn)品,框架用戶一般只需要使用框架提供的類或函數(shù),就可以實現(xiàn)全部功能。可以說,框架是庫的升級版。
    開發(fā)者在使用框架的時候,必須使用這個框架的全部代碼。
  • 框架和庫的比較可以想像為:
    假如我們要買一臺電腦??蚣転槲覀兲峁┝艘呀?jīng)裝好的電腦,我們只要買回來就能用,但你必須把整個電腦買回來。這樣用戶自然輕松許多,但會導致很多人用一樣的電腦,或你想自定義某個部件將需要修改這個框架。
    而庫就如自己組裝的電腦。庫為我們提供了很多部件,我們需要自己組裝,如果某個部件庫未提供,我們也可以自己做。庫的使用非常靈活,但沒有框架方便。
  • 框架與類庫的區(qū)別主要表現(xiàn)在以下幾個方面:
    (1)從結構上說,框架內(nèi)部是高內(nèi)聚的,而庫內(nèi)部是相對松散的。
    (2)框架封裝了處理流程的控制邏輯,而庫幾乎不涉及任何處理流程和控制邏輯。
    (3)框架具有控制反轉(zhuǎn)能力,而庫沒有。對于庫中的元素來說,通常是由我們的應用來調(diào)用它;而框架在適當?shù)臅r候會自己調(diào)用我們應用中的邏輯。
    (4)框架專注于特定的領域,而庫更通用的。

二、jquery能做什么?

  • jquery是一個快速、簡潔和功能豐富的JavaScript庫。它封裝JavaScript常用的功能代碼,提供一種簡便的JavaScript設計模式,優(yōu)化HTML文檔操作、事件處理、動畫設計和Ajax交互。
  • jQuery通常能為我們提供以下功能:
    1、方便快捷獲取DOM元素。例如:找到所有以div中應用了.content class樣式的p標簽。
    $('.content').find('p');
    2、修改頁面樣式。即使是在css頁面呈現(xiàn)之后,jQuery仍能改變文檔中某個部分的類或者個別的樣式屬性。例如:找到頁面所有的ul標簽的第一個li子標簽,然后為它們增加名為active的樣式.
    $('ul>li:first').addClass('active');
    3、改變文檔的內(nèi)容??梢愿淖兾谋?、插入或翻轉(zhuǎn)圖像、列表重新排序,甚至對 HTML文檔的整個結構都能重寫和擴充。例如:為IDcontainer的元素添加一個連接。
    $('#container').append('<a href="more.html">more</a>');
    4、響應用戶的交互操作。jquery提供了截獲形形色色的頁面事件(比如用戶單擊某個鏈接)的適當方式,而不需要使用事件處理程序拆散HTML代碼。例如:為使用的.show-details樣式的button元素添加一個click事件,事件就是:顯示使用.details樣式的DIV
$('button.show-details').click(function() {
   $('div.details').show(); 
 });

5、為頁面添加動態(tài)效果。
$('div.details').slideDown();
6、簡化常見的JavaScript任務。除了這些完全針對文檔的特性之外,jQuery也改進了對基本的JavaScript數(shù)據(jù)結構(例如迭代和數(shù)組操作等)。

 $.each(obj, function(key, value) {
     total += value;
 });

7、統(tǒng)一Ajax操作。jQuery統(tǒng)一了多種瀏覽器的Ajax操作,使得開發(fā)人員更多的專注服務器端開發(fā)。

三、jquery對象和DOM原生對象有什么區(qū)別?如何轉(zhuǎn)化?

  • DOM原生對象和jquery對象的區(qū)別:
    1.js獲取的dom是一個對象,jquery對象就是一個偽數(shù)組對象,是選擇出來元素的數(shù)組集合。
    jquery選擇器得到的jquery對象和標準的JavaScript中的document.getElementByld()取得的dom對象是兩種不同的對象類型,兩者不等價。
    2.jquery無法使用DOM對象的任何方法,同理DOM對象也不能使用jquery里的方法。
  • 相互 轉(zhuǎn)換:
    1.jquery對象轉(zhuǎn)換為原生DOM對象
var $li = $('li'); //jquery對象
var li = $li[0]; //DOM對象
var $div = $('div');  //jquery對象
var div = $div.get(0);  //DOM對象

2.DOM對象轉(zhuǎn)換成jquery對象
對于DOM對象,只需用$()DOM對象包裝起來,就可得到jQuery對象。

var li = document.getElementByid('li'); //DOM對象
var $li = $(li);  //jquery 對象

四、jquery中如何綁定事件?bind、unbinddelegate、live、onoff都有什么作用?推薦使用哪種?使用on綁定事件代理的寫法?

  • jquery綁定事件的方法有: bind()、live()delegate()、on()。解除綁定的方法有:unbind()、die()undelegate()、off()`。
  • bind()、live()delegate()逐漸被on()替代。unbind()、die()、undelegate()逐漸被off()代替。off()、on()方法給api帶來更多的便利。推薦使用該方法。
  • on()方法在被選元素及子元素上添加一個或多個事件處理程序。
$('.child').on('click',function(){
    console.log('ok')
})  //監(jiān)聽子元素
$('.parent').on('click','.child',function(){
    console.log('ok')
})  //監(jiān)聽父元素
  • off()移除事件處理程序。
    $('.parent').off('click');

五、jquery如何展示/隱藏元素?

基本的展示和隱藏元素

  • 隱藏:.hide([duration ] [,easing ] [,complete ])用于隱藏元素,沒有參數(shù)的時候等同于直接設置display屬性。例如:
 $('.target').hide(); //等價于 $('.target').css('display', 'none')

 $('#book').hide(300, 'linear', function() {
    alert('Animation complete.');
  }) // 300秒之內(nèi)緩慢的沿直線的形式消失并彈出一個對話框
  • 展示:.show( [duration ] [, easing ] [, complete ] )用法與hide類似。
  • 隱藏、展示切換:.toggle( [duration ] [, easing ] [, complete ] )用來切換元素的隱藏、顯示,類似于toggleClass,用法和show、hide類似。
    其中參數(shù)的意義:
    duration:動畫持續(xù)多久;
    easing:過渡使用哪種緩動函數(shù),jQuery自身提供"linear""swing"
    complete:在動畫完成時執(zhí)行的函數(shù)。

漸變式展示和隱藏

  • 漸入方式展示:.fadeIn( [duration ] [, easing ] [, complete ] )
  • 漸出方式隱藏:.fadeOut( [duration ] [, easing ] [, complete ] )
    調(diào)整匹配元素的透明度:.fadeTo( duration, opacity [, easing ] [, complete ] )
  • 漸入和漸出間的切換:.fadeToggle( [duration ] [, easing ] [, complete ] )通過匹配元素的不透明度動畫,來顯示或隱藏它們,方法執(zhí)行匹配元素的不透明度動畫。元素不透明度一旦達到0,display樣式屬性設置為none。
    其中參數(shù)的意義和上一條中相同。例如:
$("button:first").click(function() {
     $("p:first").fadeToggle("slow", "linear");
});

滑動式展示和隱藏

  • 下滑方式展示:.slideDown( [duration ] [, easing ] [, complete ] )
  • 上滑方式隱藏:.slideUp( [duration ] [, easing ] [, complete ] )
  • 下滑和上滑間的切換:.slideToggle( [duration ] [, easing ] [, complete ] )
    其中參數(shù)的意義和上一條中相同。
$('#book').slideDown('slow', function() {
  //Animation complete.
});

六、jquery動畫如何使用?

  • 上面幾個簡單的動畫不能滿足需求的時候,jquery提供了自定義動畫行為的方法:
  • .animate( properties [, duration ] [, easing ] [, complete ] )
    參數(shù)意義:
    properties:一個CSS屬性和值的對象,動畫將根據(jù)這組對象移動。
    例1
    例2
    參考
  • .clearQueue
    清除動畫隊列中未執(zhí)行的動畫。
  • .finish
    停止當前動畫,并清除動畫隊列中所有未完成的動畫,最終展示動畫隊列最后一幀的最終狀態(tài)。
  • .stop( [clearQueue ] [, jumpToEnd ] )
    停止當前正在運行的動畫。
    參數(shù)意義:
    clearQueue(default: false)
    jumpToEnd(default: false)

七、如何設置和獲取元素內(nèi)部html內(nèi)容?如何設置和獲取元素內(nèi)部的文本?

$('div').html('abc');     //設置元素內(nèi)部HTML內(nèi)容為"abc"

$('div').html();     //獲取元素內(nèi)部HTML內(nèi)容

$('div').text('abc');     //設置元素內(nèi)部文本為"abc"

$('div').text();     //獲取元素內(nèi)部文本

八、如何設置和獲取表單用戶輸入或者選擇的內(nèi)容?如何設置和獲取元素的屬性?

$('input').val('abc');     //設置表單用戶輸入或者選擇的內(nèi)容為"abc"

$('input').val();     //獲取表單用戶輸入或者選擇的內(nèi)容

$('div').attr('class','abc');     //設置元素的class屬性為"abc"

$('div').attr('class');     //獲取元素的class屬性
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1、 jQuery 能做什么? jquery是一個豐富的js庫,內(nèi)部對js的很多復雜的方法進行了封裝和加工,比如j...
    zh_yang閱讀 1,500評論 6 13
  • JQuery是什么? jQuery就是javascript的一個庫,把我們常用的一些功能進行了封裝,方便我們來調(diào)用...
    阿魯提爾閱讀 392評論 0 3
  • 題目1:jQuery 能做什么? jQuery是一個豐富的js庫, 內(nèi)部對js的很多復雜的方法進行了封裝和加工, ...
    cctosuper閱讀 258評論 0 0
  • 1.說說庫和框架的區(qū)別? 庫主要是封裝了某些函數(shù)的集合??蚣芤彩?。使用庫是指,你的代碼決定什么時候從庫中調(diào)用一個特...
    墨月千樓閱讀 469評論 0 2
  • 題目1: jQuery 能做什么? 選擇網(wǎng)頁元素 改變結果集 元素的操作:取值和賦值 元素的操作:移動 元素的操作...
    cheneyzhangch閱讀 468評論 0 1

友情鏈接更多精彩內(nèi)容