jQuery常用方法&ajax

1. Jquery 中, $(document).ready()是什么意思?和window.onload 的區(qū)別? 還有其他什么寫法或者替代方法?

$(document).ready()可以傳遞函數(shù)給.ready(),當(dāng)DOM準(zhǔn)備就緒的時候,執(zhí)行傳遞的函數(shù)。因為有時執(zhí)行的代碼需要在元素被加載之后才能使用,(例如,取得圖片的大小需要在圖片被加載完后才能知道),就需要將這樣的代碼放到 load 事件中。
用法:

  $(document).ready(handler)

還可以寫成這樣:$(handler),如:

 $(function(){
       console.log('ready');
 });

window.onload是原生js中的一個事件,可以綁定事件處理函數(shù),其作用也是使得事件加載完成之后才出發(fā)事件,執(zhí)行事件處理函數(shù)。事件處理函數(shù)的綁定方式有:

  window.onload=function(){}
  window.addEventListener("load",handler,false);

2. $node.html()和$node.text()的區(qū)別?

.html()用于獲取元素里面的html內(nèi)容,包括html標(biāo)簽和文本;.text()用于獲取只元素中的文本,如果元素中含有多個元素,則返回每個元素中的文本。

1.jpg

3. $.extend 的作用和用法?

$.extend()的作用是可以合并多個對象,
如:

 var obj= $.extend( object1, object2,object3 );
   //此代碼將后面兩個對象object2和object3的所有屬性都添加到object1,后面的覆蓋前面的,且會更改目標(biāo)對象object1。淺拷貝,不遞歸。obj===object1
 var obj= $.extend( {},object1, object2,object3 );
  //此段代碼將后面三個對象的屬性都添加到第一個空對象中,不會更改后面的三個對象,而是組成了一個新對象。obj !== object1
var obj= $.extend( true,{},object1, object2,object3 );
 //此段代碼在最前面加上true,會采用遞歸的方式進(jìn)行添加拷貝,(對象中又包裹對象時會逐個添加每個屬性及其對應(yīng)的值。),且不會更改object1.

例1(修改第一個對象,淺拷貝):

<div id="log"></div>
<script>
     var object1 = {apple: 0,banana: { weight: 52, price: 100 },cherry: 97};
     var object2 = {banana: { price: 200 },durian: 100};
     // Merge object2 into object1
     $.extend( object1, object2 );
    // Assuming JSON.stringify - not available in IE<8
    $( "#log" ).append( JSON.stringify( object1 ) );
</script>

結(jié)果:{"apple":0,"banana":{"price":200},"cherry":97,"durian":100}
例2(不修改第一個對象,深拷貝):

<div id="log1"></div>
<div id="log"></div>
<script>
     var object1 = {apple: 0,banana: { weight: 52, price: 100 },cherry: 97};
     var object2 = {banana: { price: 200 },durian: 100};
     var obj = $.extend( true, {}, object1, object2 );
     $( "#log1" ).append( JSON.stringify( object1 ) );
     $( "#log" ).append( JSON.stringify( obj ) );
</script>

結(jié)果:
{"apple":0,"banana":{"weight":52,"price":100},"cherry":97}
{"apple":0,"banana":{"weight":52,"price":200},"cherry":97,"durian":100}

4. JQuery 的鏈?zhǔn)秸{(diào)用是什么?

像這樣一段代碼:

     $("#btn").css("color","red").attr("href","#");

就是jQuery的方法鏈。鏈?zhǔn)秸{(diào)用的優(yōu)點是:

  1. 讓調(diào)用過程更接近自然語言。
  2. 把原本參數(shù)列表復(fù)雜的方法化作多個參數(shù)列表簡單的方法來使用。
  3. 減少不必要的代碼量。

5. JQuery ajax 中緩存怎樣控制?

用參數(shù)cache控制。
cache: 是否開啟緩存,默認(rèn)為true開啟。設(shè)置為false則是關(guān)閉自動緩存。
瀏覽器自動緩存可以直接在本地緩存中查找文件,減少向服務(wù)器請求的次數(shù),提高處理速度,但是有些情況下我們不需要其緩存,因為可能無法得到最新的數(shù)據(jù),比如‘天氣’、‘路況’等信息,當(dāng)我們向瀏覽器請求是需要得到實時的最新數(shù)據(jù),而不是以前緩存在本地的數(shù)據(jù),這種情況可以關(guān)閉緩存。
另一種做法是在請求地址后面添加參數(shù),如:

<script src='abc.js?v=1'></script>

更改了文件第二次上線時可以直接更改地址后面的參數(shù)值,<script src='abc.js?v=2'></script>,由于src不同了,所以瀏覽器不會再用本地緩存,會重新發(fā)送請求,從而拿到最新的abc.js文件。

6. jquery 中 data 函數(shù)的作用

.data()用于在匹配元素上存儲任意相關(guān)數(shù)據(jù) 或 返回匹配的元素集合中的第一個元素的給定名稱的數(shù)據(jù)存儲的值。

 $("body").data("foo", 52);
 $("body").data("bar", { myType: "test", count: 40 });
 $("body").data({ baz: [ 1, 2, 3 ] });
 $("body").data("foo"); // 52
 $("body").data();  // { foo: 52, bar: { myType: "test", count: 40 }, baz: [ 1, 2, 3 ] }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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