jquery 常用方法&ajax

本教程版權歸小圓和饑人谷所有,轉載須說明來源

問答

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

$(document).ready():當 DOM(文檔對象模型) 已經加載,并且頁面(包括圖像)已經完全呈現時,會發生 ready 事件。由于該事件在文檔就緒后發生,因此把所有其他的 jQuery 事件和函數置于該事件中是非常好的做法。
區別
$(document).ready()是DOM結構繪制完畢后就執行,不必等到加載完畢??梢酝瑫r編寫多個,并且都可以得到執行。有簡寫方法。
window.onload必須等到頁面內包括圖片的所有元素加載完畢后才能執行。不能同時編寫多個,如果有多個window.onload方法,只會執行一個 。沒有簡寫方法。
其他寫法
以下均為$(document).ready()的簡寫方法。

$().ready(function(){
        //do something...
})
$(function(){
        //do something...
})

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

$node.html():取得第一個匹配元素的html內容。這個函數不能用于XML文檔。但可以用于XHTML文檔。
$node.text():取得所有匹配元素的內容。結果是由所有匹配元素包含的文本內容組合起來的文本。這個方法對HTML和XML文檔都有效。

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

$.extend用一個或多個其他對象來擴展一個對象,返回被擴展的對象。
用法

$.extend(dest,src1,src2,src3...);

它的含義是將src1,src2,src3...合并到dest中,返回值為合并后的dest,由此可以看出該方法合并后,是修改了dest的結構的。如果想要得到合并的結果卻又不想修改dest的結構,可以如下使用:

var newSrc=$.extend({},src1,src2,src3...)//也就是將"{}"作為dest參數。

這樣就可以將src1,src2,src3...進行合并,然后將合并結果返回給newSrc了。
3、

$.extend(boolean,dest,src1,src2,src3...)

第一個參數boolean代表是否進行深度拷貝,其余參數和前面介紹的一致

4. JQuery 的鏈式調用是什么?

鏈式調用就是分步驟地對jQuery對象實現各種操作。它的原理在于每一步的jQuery操作,返回的都是一個jQuery對象,所以不同操作可以連在一起。例如:

$("#Test").css('color','red').show(200).removeClass('style');

上面的例子就是鏈式操作,在一行代碼里,對id為Test的對象進行了三項操作:先設置其字體顏色為紅色,再顯示對象,最后移除對象的“style”這個樣式。

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

如果沒有進行額外設置的話,如果請求的地址和參數及參數的值完全一樣,就會發生jquery ajax使用緩存的情況。

jquery ajax禁用緩存的解決方案:

  1. 在請求的url后面加上一個隨機參數(***.do?random=Math.random)這不失為一個好方法,缺點就是在所有的jquery ajax請求的地方都要加上這個隨機參數,新項目還行,老項目的話,這是個巨大的工作量。
  2. 給jquery ajax請求設置禁用緩存的全局設置我們都知道在jquery ajax的的方法中有個cache參數,如果設置為false,那么就不進行緩存。用ajaxSetup() 方法,該方法可以為所有的ajax請求統一設置默認參數。那么可以設置如下代碼:
$(function(){ $.ajaxSetup ({ 
       cache: false //關閉AJAX緩存 
      });
});

6. jquery 中 data 函數的作用

data()函數就是向元素中附加數據,然后在需要的時候取出數據

  • 第一種寫法,傳遞參數key(string),value(除undefined的任意數據類型)
$('body').data('name','hunger')//在body上綁定key為name value為xianyu的值
$('body').data('name') //取出值 得到hunger
  • 2 .第二種寫法,傳遞一個對象
$('body').data({
      name:'hunger',
      age:2
})
$('body').data().age //取出值 得到2
  • 第三種寫法,傳遞三個參數,第一個參數為綁定的對象,第二個參數為key,第三個對象為的value
$.data('body','name','hunger') 
$.data('body','name')//得到name的值 為hunger

代碼

  1. 寫出以下功能對應的 Jq 方法:
  2. 給元素 $node 添加 class active,給元素 $noed 刪除 class active
$node.addClass('active');
$node.removeClass('active');
  1. 展示元素$node, 隱藏元素$node
$node.show();
$node,hide();
  1. 獲取元素$node 的 屬性: id、src、title, 修改以上屬性
$node.attr('id');//獲取id
$node.attr('src');//獲取src
$node.attr('title');//獲取title
$node.attr('id','value');//修改id
$node.attr('src','value');//修改src
$node.attr('title','value');//修改title
  1. 給$node 添加自定義屬性data-src
$node.attr('data-src','value');
  1. 在$ct 內部最開頭添加元素$node
$ct.pretent($node);
  1. 在$ct 內部最末尾添加元素$node
$ct.append($node);
  1. 刪除$node
$node.remove();
  1. 把$ct里內容清空
$ct.empty();
  1. 在$ct 里設置 html <div class="btn"></div>
$ct.html('<div class="btn"></div>');
  1. 獲取、設置$node 的寬度、高度(分別不包括內邊距、包括內邊距、包括邊框、包括外邊距)
//不包括內邊距
$node.width();//獲取寬度
$node.height();//獲取高度
$node.width('value');//設置寬度
$node.height('value');//設置高度
//包括內邊距
$node.innerWidth();//獲取包括內邊距的寬度
$node.innerHeight();//獲取包括內邊距的高度
$node.innerWidth('value');//設置包括內邊距的寬度
$node.innerHeight('value');//設置包括內邊距的高度
//包括邊框
$node.outerWidth();//獲取包括邊框寬度
$node.outerHeight();//獲取包括邊框高度
$node.outerWidth('value');//設置包括邊框寬度
$node.outerHeight('value');//設置包括邊框高度
//包括外邊距
$node.outerWidth(true);//獲取包括外邊距寬度
$node.outerHeight(true);//獲取包括外邊距高度
  1. 獲取窗口滾動條垂直滾動距離
$node.scollTop();
  1. 獲取$node 到根節點水平、垂直偏移距離
$node.offset();//返回到根節點的top和left值
  1. 修改$node 的樣式,字體顏色設置紅色,字體大小設置14px
$node.css({
          'color': 'red',
          'font-size': '14px';
});
  1. 遍歷節點,把每個節點里面的文本內容重復一遍
$node.each(function(idx,val){
        console.log($(this).text(););
});
  1. 從$ct 里查找 class 為 .item的子元素
$ct.find('.item');
  1. 獲取$ct 里面的所有孩子
$ct.children();
  1. 對于$node,向上找到 class 為’.ct’的父親,在從該父親找到.panel的孩子
$node.parents('.ct').find('.panel');
  1. 獲取選擇元素的數量
$node.length;
  1. 獲取當前元素在兄弟中的排行
$node.index();
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內容