- Jquery 中摆出, $(document).ready()是什么意思叔汁?和window.onload 的區(qū)別惯豆? 還有其他什么寫法或者替代方法颜阐?
- $(document).ready()
其實是DOMContentLoaded事件逗噩,就是當頁面文檔完全加載并解析完畢之后掉丽,會觸發(fā)DOMContentLoaded事件,HTML文檔不會等待樣式文件异雁、圖片文件捶障、子框架頁面的加載
參考:DOMContentLoaded---MDN- 其他寫法
- $(document).ready()
$(handler)//直接放在`$()`就可以
- window.onload
window.onload事件會等到頁面的所有資源都下載完成后才觸發(fā)
- $node.html()和$node.text()的區(qū)別?
- $node.html()
獲取的是節(jié)點的html內容,例如
- $node.html()
<div id=test><span>hello</span></div>
$('#test').html()//返回的就是'<span>hello</span>'
- $node.text()
獲取的是節(jié)點的text內容
<div id=test><span>hello</span></div>
$('#test').text()//返回的是'hello'
- $.extend 的作用和用法?
- $.extend的作用
可以合成多個對象到第一個對象纲刀,如果只有一個對象將擴展到jQuery的命名空間 - $.extend的用法
- 在jQuery上擴展
- $.extend的作用
$.extend({
name:function(n){
return n
},
age: 18
})
$.name('hello')//'hello'
$.age//18
如果只傳入一個對象项炼,那么目標就是jQuery,就會擴展到jQuery的命名空間
- 合并對象
jQuery.extend( [deep ], target, object1 [, objectN ] )//這是$.extend的語法
- deep參數
可選的參數示绊,表示是否進行深拷貝锭部,默認是false
- target參數
即合成的目標對象,如果是已存在的對象將會被修改
- object1[,objectN]
即將要合成的多個對象面褐,后面的屬性會覆蓋前面的
- JQuery 的鏈式調用是什么拌禾?
即獲取一次對象,就能一直在獲取的對象上操作展哭。因為很多jQuery的操作返回的是原來的那個選中的對象湃窍,所以就能一直操作下去,例如
$('.a')
.children('.b').addClass('asdf').end()
.children('#test').addClass('qwer').end()
.parent().addClass('zxcv').end()
- JQuery ajax 中緩存怎樣控制?
POST請求不會產生緩存摄杂,但是如果GET請求的URL一樣坝咐,就會產生緩存,產生緩存的結果是瀏覽器不會去服務器更新內容析恢,而是使用本地的緩存- 使用時間戳
在請求的地址后面加上一個時間戳墨坚,每次的URL是不同的,所以就不會緩存 - JQuery ajax控制緩存
$.ajax()中提供cache屬性來控制緩存映挂,默認是true(datatype為script和jsonp的默認值為false)泽篮,如果設置的是false,就會強制請求頁面不被瀏覽器緩存柑船,注意帽撑,這個方法只對GET請求有效,而且鞍时,也只有GET請求需要這個參數亏拉,原理就是在URL后面加"_={timestamp}"
- 使用時間戳
- jquery 中 data 函數的作用
可以在選中的元素上儲存任意的數據.data( key, value )
$('div').data('src','http://baidu.com')
$('div').data('src')//'http://baidu.com'
- 在HTML5中扣蜻,可以訪問到元素中的data-*屬性
<div data-src="http://baidu.com"></div>
$('div').data('src')//'http://baidu.com'