1. jQuery 中, $(document).ready()是什么意思?
$(document).ready()
是指只要DOM就緒就可以操縱了,不需要等待所有圖片下載完畢。很顯然,把網頁解析為DOM樹的速度比頁面中的所有關聯文件加載完畢的速度快很多。
注:
我們需要注意的是,由于$(document).ready()
方法內注冊的事件,只要DOM準備好了就會被執行,因此可能此時元素的關聯文件未下載完。例如與圖片有關的HTML下載完畢,并且已經解析為DOM樹了,但很多可能圖片未加載完畢,所以圖片的高度和寬度的屬性此時不一定有效。要解決這個方法我們可以用JQ另一個關于加載頁面的方法——load()方法。
ready方法的寫法
正常寫法:
$(document).ready(function(){
//to do .......
})
簡寫寫法:
$(function(){
//to do .....
})
2.$node.html()和$node.text()的區別?
$node.html()設置和返回所選元素的內容,內容包括(html內容,text內容)
$node.text()設置和所選元素的文本。
3.$.extend()的作用和用法?
作用:
如果我們想將兩個或者多個對象的值插入到目標對象里面,我們可以使用$.extend(target,obj1,obj2,....)。
如果只有一個參數提供給$.extend(),這意味著目標參數被省略。在這種情況下,jQuery對象本身被默認為目標對象。這樣,我們可以在jQuery的命名空間下添加新的功能。這對于插件開發者希望向 jQuery 中添加新函數時是很有用的。
語法
語法:
$.extend(Bollean, target ,obj1,obj2...... );
其作用的是將obj1和obj2合并到target里面,并返回target。第一個數值代表是否進行深拷貝.
用法:
var res = $.extend({},{name:'sheldon',sex:'boy'},{name:'peter',age:20,hobby:'swim'});
console.log(res);
Object {name: "peter", sex: "boy", age: 20, hobby: "swim"}
后面相同的屬性的值會后者覆蓋前者。
extend()的深拷貝:
$.extend()的深拷貝
extend(boolean,target,obj1,obj2...)
第一個參數boolean代表是否進行深度拷貝;
var result=$.extend( true, {},{ name: "John", location: {city: "Boston",county:"USA"} },{ last: "Resig", location: {state: "MA",county:"China"} } );
合并后的結果就是:
result={name:"John",last:"Resig",location:{city:"Boston",state:"MA",county:"China"}}
如果為false:
var result=$.extend( false, {},{ name: "John", location:{city: "Boston",county:"USA"} },{ last: "Resig", location: {state: "MA",county:"China"} });
合并后的結果就是:
result={name:"John",last:"Resig",location:{state:"MA",county:"China"}}
4.JQuery 的鏈式調用是什么?
當jQuery的方法的返回值仍為當前對象時可以繼續調用該對象的方法,這樣就形成一種鏈式調用;
example:
$('.btn1').addClass('hover').removeClass('active').
5.JQuery ajax 中緩存怎樣控制?
jquery中調用ajax封裝函數時,傳入參數中的cache可控制緩存。cache(默認為true):如果設置為 false ,瀏覽器將不緩存此頁面。注意: 只有當使用GET方法時,設置cache為false是有用的,設置cache為 false將在 HEAD和GET請求中正常工作,相當于在GET請求參數中附加”_={timestamp}”,這樣每次發起請求都會加上不同時間戳形成新的請求并由后臺響應,不會從本地緩存中查找。而當使用POST方法時,則每次都會被認為是新的請求,不會緩存頁面。
6.JQuery 中 data 函數的作用
定義:
在匹配元素上存儲任意相關數據 或 返回匹配的元素集合中的第一個元素的給定名稱的數據存儲的值。
7.代碼一
//1.給元素 $node 添加 class active,給元素 $noed 刪除 class active
$node.addClass('active');//添加calss
$node.removeClass('active');//刪除calss
//2.展示元素$node, 隱藏元素$node
$node.show();//展示
$node.hide();//隱藏
//3.獲取元素$node 的 屬性: id、src、title, 修改以上屬性
$node.attr('id');//獲取
$node.attr('src');
$node.attr('title');
$node.attr('id','value');//修改
$node.attr('src','value');
$node.atrr('title','value');
//4.給$node 添加自定義屬性data-src
$node.attr('data-src','');
//5.在$ct 內部最開頭添加元素$node
$ct.prepend($node);
//6.在$ct 內部最末尾添加元素$node
$ct.append($node);
//7.刪除$node
$node.remove('<div class="btn"></div>');
//8.把$ct里內容清空
$ct.empty();
//9.在$ct 里設置 html <div class="btn"></div>
$ct.html()
//10.獲取、設置$node 的寬度、高度(分別不包括內邊距、包括內邊距、包括邊框、包括外邊距)
$node.width();
$node.height();
$node.innerWidth();
$node.innerHeight();
$node.outerWidth();
$node.outerHeight();
$node.outerHeight(true);
$node.outerWidth(true);
//11.獲取窗口滾動條垂直滾動距離
$(window).scrollTop()
//12.獲取$node 到根節點水平、垂直偏移距離
$node.offset();
//13.修改$node 的樣式,字體顏色設置紅色,字體大小設置14px
$node.css({'color':'red','font-size':'14px'})
//14.遍歷節點,把每個節點里面的文本內容重復一遍
$node.each(function(index,ele){
console.log(this.text());
})
//15.從$ct 里查找 class 為 .item的子元素
$ct.find('.item');
//16.獲取$ct 里面的所有孩子
$ct.children();
//17.對于$node,向上找到 class 為'.ct'的父親,在從該父親找到'.panel'的孩子
$node.parent('.ct').find('.panel')
//18.獲取選擇元素的數量
$node.length();
//19.獲取當前元素在兄弟中的排行
$(this).index();
代碼二
代碼三
感謝可能是假的觀眾:
版權歸饑人谷peter和饑人谷所有,若有轉載,請注明來源