問答
1.Jquery 中, $(document).ready()是什么意思?和window.onload 的區(qū)別? 還有其他什么寫法或者替代方法?
(1)$(document).ready()
- 等頁面中所有的節(jié)點都加載完后就執(zhí)行后面的代碼(頁面中的音頻、視頻、圖片等可能并沒有加載完)
- 可以編寫多個
- 可以簡寫成
$().ready(function(){})或$(function(){})
(2)window.onload
- 當頁面中所有的內容(包括音頻、視頻、圖片等)都加載完成之后再執(zhí)行后面的代碼
- 不能編寫多個,后面的會覆蓋前面的
2.$node.html()和$node.text()的區(qū)別?
- .html()獲取匹配元素集合中第一個元素的Html內容(包括html標簽),.html(string)設置每個匹配元素的html內容。
- .text()獲取每個匹配元素(包括它們的后代)文本的合并,text(string)設置每個匹配元素的文本。
<div>AA
<p>BB
<span>CC</span>
</p>
</div>
<div>aa
<p>bb
<span>cc</span>
</p>
</div>
<script >
$("div").html() // 返回的是第一個div中的html,"AA<p>BB<span>CC</span></p>"
$("div").text() //返回的是兩個div(包括它們的后代)的文本的合集,"AABBCCaabbcc"
$("div").html("<span>hh</span>") //[<div><span>hh</span>??</div>?, <div><span>hh</span></div>?]
$("div").text("kk") //[<div>?kk?</div>?, <div>?kk?</div>?]
</script>
3.$.extend 的作用和用法?
作用:將兩個或更多對象的內容合并到第一個對象。
語法: $.extend( [bool], target, object1 [, objectN ] )
[deep]:可選。默認false。如果是true,合并成為遞歸(又叫做深拷貝)。
[target]:目標對象。將被修改,如果我們想保留原對象,我們可以通過傳遞一個空對象作為目標對象。
[object1]:合并到新的屬性的第一個參數(shù)。
[,objectN]:可選。合并到新的屬性的第N個參數(shù)。
無deep參數(shù)時
var target={}
$.extend(
target,
{name:{fruit:"apple",sport:"swim"},age:18},
{age:20,color:red},
{name:{fruit:"pear"},age:30}
)
console.log(target) //{age:30, color:"red", name:{ fruit:"pear" }}
參數(shù)為true時候
var target={}
$.extend(
true,
target,
{name:{fruit:"apple",sport:"swim"},age:18},
{age:20,color:"red"},
{name:{fruit:"pear"},age:30}
)
console.log(target) //{age:30, color:"red", name:{ fruit:"pear", sport:"swim" }}
4.JQuery 的鏈式調用是什么?
當jQuery的方法的返回值仍為當前對象時可以繼續(xù)調用該對象的方法就叫做鏈式調用。
$(ele).parents().find().addClass().hide();
5.JQuery ajax 中緩存怎樣控制?
- jQuery ajax方法中利用cache參數(shù)來控制緩存。
cache設置為true瀏覽器將緩存頁面(默認為ture,dataType為”script”和”jsonp”時默認為false。)
設置為false,瀏覽器將不會緩存頁面(比如一些需要實時更新的東西,如天氣等)。 - 在get請求參數(shù)中附加一個時間戳={timestamp},由于時間一直在變化,這樣發(fā)生網絡請求時,瀏覽器會認為這不是同一個頁面,因此不會從緩存獲取數(shù)據(jù),而是重新發(fā)送請求獲取數(shù)據(jù)。
6.jquery 中 data 函數(shù)的作用
作用:在匹配元素上存儲任意相關數(shù)據(jù) 或 返回匹配的元素集合中的第一個元素的給定名稱的數(shù)據(jù)存儲的值。通過data()函數(shù)存取的數(shù)據(jù)都是臨時數(shù)據(jù),頁面刷新之后,之前存放的數(shù)據(jù)都將不在。
-
.data( key, value ):在匹配元素上存儲任意相關數(shù)據(jù). -
.data( key ):返回匹配的元素集合中的第一個元素的給定名稱的數(shù)據(jù)存儲的值。
<div class="box1"></div>
<div class="box2"></div>
<script>
$(".box1").data("fruit","pear") //存數(shù)據(jù)
$(".box2").data("fruit",{apple:"like",cherry:"hate"}) //存數(shù)據(jù)
$(".box1").data("fruit") // "pear",取數(shù)據(jù)
$(".box2").data("fruit") // {apple: "like", cherry: "hate"} ,取數(shù)據(jù)
$("div").data("fruit") //"pear", 返回第一個div上的數(shù)據(jù)
</script>