問(wèn)答
1.Jquery 中, $(document).ready()是什么意思?和window.onload 的區(qū)別? 還有其他什么寫法或者替代方法?
-
$(document).ready()
方法,可實(shí)現(xiàn)在DOM結(jié)構(gòu)加載完畢后,調(diào)用某個(gè)函數(shù),而不必等待頁(yè)面中的圖像加載完畢。 JS代碼中可編寫多個(gè),而且都能被執(zhí)行。這是為了防止文檔在完全加載(就緒)之前運(yùn)行 jQuery 代碼,如果在文檔沒(méi)有完全加載之前就運(yùn)行函數(shù),操作可能失敗。必須在文檔加載完成后在執(zhí)行操作,可使用ready事件,作用相當(dāng)于我們把js寫到body的末尾。
$(document).ready(function(){
//you code here
})
//第二種寫法
$().ready(function(){
//you code here...
})
//簡(jiǎn)寫版:
$(function(){
//you code here..
})
- 和
window.onload
的區(qū)別在于,-
($document).ready()
只需要等待DOM結(jié)構(gòu)加載完畢就能執(zhí)行,而window.onload
需要等到頁(yè)面全部加載完成之后才執(zhí)行,onload的意思是表示頁(yè)面包括的圖片等所有其他文件都加載完成 -
window.onload
不能同時(shí)編寫多個(gè),默認(rèn)會(huì)執(zhí)行最后一個(gè),而($document).ready()
可編寫多個(gè)
-
2.$node.html()和$node.text()的區(qū)別?
- $node.html(),返回所選擇元素內(nèi)的html內(nèi)容,包含html標(biāo)簽和文本內(nèi)容
-
$node.text(),返回所選擇元素內(nèi)的文本內(nèi)容,不包含html標(biāo)簽,只包含文本內(nèi)容
demo
3.$.extend 的作用和用法?
- $.extend()函數(shù)的作用就是一個(gè)或多個(gè)對(duì)象的內(nèi)容合并到目標(biāo)對(duì)象上
$.extend(target[,object1],[objectN])
demo:
var obj1 = {name:"xiaoming",age:10};
var obj2 = {sex:"nan"};
$.extend(obj1,obj2);
console.log(obj1) // {name:"xiaoming",age:10,sex:"nan"};
console.log(obj2) //{sex:"nan"};
- 假如第一參數(shù)是true,$.extend()具有深拷貝的作用
var obj1 = {name:"xiaoming",age:10};
var obj2 = {hobby:{sport:"basketball",music:"abc"},sex:"nan";}
$.extend(true,obj1,obj2);
console.log(obj1) //{name:"xiaoming",age:10,hobby:{music:"hello",sport: "basketball"}}
console.log(obj2)
- 通常的用法是,我們不希望改變?cè)械膶?duì)象,因此可以增添一個(gè)新對(duì)象進(jìn)行合并
var obj1 = {name:"xiaoming",age:10};
var obj2 = {sex:"nan"}
var newObj = $.extend({},obj1,obj2);
4. JQuery 的鏈?zhǔn)秸{(diào)用是什么?
-
jquery的鏈?zhǔn)秸{(diào)用就是在一個(gè)方法接上另外一個(gè)方法,在一行代碼中進(jìn)行多項(xiàng)的操作,簡(jiǎn)單說(shuō)就是同一個(gè)選取對(duì)象連續(xù)使用多個(gè)JQuery的方法
demo:
$(this).css({'background':'red'}).hide().show()
5. JQuery ajax 中緩存怎樣控制?
- 如果沒(méi)有進(jìn)行額外設(shè)置的話,如果請(qǐng)求的地址和參數(shù)及參數(shù)的值完全一樣,就會(huì)發(fā)生jquery ajax使用緩存的情況。不過(guò),假如使用的是POST方法,那么每次都會(huì)是請(qǐng)求新頁(yè)面,不會(huì)利用緩存。
- 因此,我們可以讓每次的URL不一樣來(lái)取消緩存,例如
$.ajax({
url:"abc.php?"+new Date()//可以是隨機(jī)數(shù)Math.random()
})
或者讓cache設(shè)置成false
$.ajax({
url:"abc.php"
cache:false
)};
6. jquery 中 data 函數(shù)的作用
可以理解為在匹配元素中儲(chǔ)存數(shù)據(jù),可以用于數(shù)據(jù)的拷貝,你想用的時(shí)候就可以拿出來(lái),寫法是.data(key,value)
demo:
$('body').data('name','huo')
$('body').data('name') //得出huo
$( "body" ).data("obj", {name: "huo", age: 40});
$("body").data("obj"); //{name: "huo", age: 40}
還可以這樣寫:
$.body(obj,'name','huo')
//第一個(gè)參數(shù)為綁定的對(duì)象,第二個(gè)參數(shù)為key,第三個(gè)對(duì)象為的value
代碼:
begin.png
after.png