1: jQuery 中, $(document).ready()是什么意思?
所有包括在$(document).ready()里面的元素或事件都將會(huì)在DOM完成加載之后立即加載两芳,并且在頁面內(nèi)容加載之前宋舷。
$(document).ready() 與window.onload 的區(qū)別
1.執(zhí)行時(shí)間
window.onload必須等到頁面內(nèi)包括圖片的所有元素加載完畢后才能執(zhí)行
$(document).ready()是DOM結(jié)構(gòu)繪制完畢后就執(zhí)行状植,不必等到加載完畢
2.編寫個(gè)數(shù)
window.onload不能同時(shí)編寫多個(gè),如果有多個(gè)window.onload方法颁井,只會(huì)執(zhí)行一個(gè)(除非通過對(duì)onload事件進(jìn)行卸載重新添加事件的方式添加多個(gè)需要執(zhí)行的方法)
$(document).ready()可以同時(shí)編寫多個(gè),并且都可以得到執(zhí)行
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)容
3: $.extend 的作用和用法?
jQuery.extend()函數(shù)用于將一個(gè)或多個(gè)對(duì)象的內(nèi)容合并到目標(biāo)對(duì)象。
語法:
jQuery.extend( [ deep ], target , object1 [, objectN... ] )
deep:可選/Boolean類型贬芥,指是否深度合并對(duì)象吐辙,默認(rèn)為false。如果該值為true蘸劈,且多個(gè)對(duì)象的某個(gè)同名屬性也都是對(duì)象昏苏,則該"屬性對(duì)象"的屬性也將進(jìn)行合并。
target: Object類型,目標(biāo)對(duì)象贤惯,其他對(duì)象的成員屬性將被復(fù)制到該對(duì)象上洼专。
object1: 可選/Object類型,第一個(gè)被合并的對(duì)象孵构。
objectN: 可選/Object類型屁商,第N個(gè)被合并的對(duì)象。
注意事項(xiàng):
- 參數(shù)deep的默認(rèn)值為false颈墅,你可以為該參數(shù)明確指定true值蜡镶,但不能明確指定false值。簡(jiǎn)而言之恤筛,第一個(gè)參數(shù)不能為false值官还。
- 如果參數(shù)為null或undefined,則該參數(shù)將被忽略毒坛。
- 如果只為$.extend()指定了一個(gè)參數(shù)望伦,則意味著參數(shù)target被省略。此時(shí)煎殷,target就是jQuery對(duì)象本身屯伞。通過這種方式,我們可以為全局對(duì)象jQuery添加新的函數(shù)蝌数。
- 如果多個(gè)對(duì)象具有相同的屬性愕掏,則后者會(huì)覆蓋前者的屬性值。
4.JQuery 的鏈?zhǔn)秸{(diào)用是什么顶伞?
鏈?zhǔn)讲僮骶褪欠植襟E地對(duì)jQuery對(duì)象實(shí)現(xiàn)各種操作
例如:
$("#Test").addClass('style').find("div").eq(0).fadeOut(200);
上面的例子就是鏈?zhǔn)讲僮鞫牛谝恍写a里,先為id為Test的對(duì)象添加"style"這個(gè)樣式唆貌,再找尋其下的第一個(gè)div標(biāo)簽滑潘,并使其淡出。
鏈?zhǔn)讲僮髂軌蜃尨a變得簡(jiǎn)潔锨咙,因?yàn)榭梢栽谝粭l語句中實(shí)現(xiàn)以往多條語句才能完成的任務(wù)语卤。
原理:jQuery節(jié)點(diǎn)在調(diào)用api后都會(huì)返回節(jié)點(diǎn)自身。
5: jQuery 中 data 函數(shù)的作用
data() 方法向被選元素附加數(shù)據(jù)酪刀,或者從被選元素獲取數(shù)據(jù)粹舵。
通過data()函數(shù)存取的數(shù)據(jù)都是臨時(shí)數(shù)據(jù),一旦頁面刷新骂倘,之前存放的數(shù)據(jù)都將不復(fù)存在眼滤。
該函數(shù)屬于jQuery對(duì)象(實(shí)例)。如果需要移除通過data()函數(shù)存放的數(shù)據(jù)历涝,使用 removeData() 函數(shù)诅需。
使用方式:
1漾唉、獲取附加的data的值
$(selector).data(name)
name:可選。規(guī)定要取回的數(shù)據(jù)的名稱堰塌。
如果沒有規(guī)定名稱赵刑,則該方法將以對(duì)象的形式從元素中返回所有存儲(chǔ)的數(shù)據(jù)。
2场刑、用name和value為對(duì)象附加數(shù)據(jù)
$(selector).data(name,value)
selector:為需要附加或者獲取數(shù)據(jù)的對(duì)象般此。
name:參數(shù)為數(shù)據(jù)的名稱。
value:參數(shù)為數(shù)據(jù)的值牵现。
3恤煞、使用對(duì)象向元素附加數(shù)據(jù)
使用帶有名稱/值對(duì)的對(duì)象向被選元素添加數(shù)據(jù)。
$(selector).data(object)
object:必需施籍。規(guī)定包含名稱/值對(duì)的對(duì)象。
6:寫出以下功能對(duì)應(yīng)的 jQuery 方法
- 給元素 $node 添加 class active概漱,給元素 $noed 刪除 class active
$node.addClass('active');//添加
$node.removeClass('active');//刪除
- 展示元素$node, 隱藏元素$node
$node.show();//展示
$node.hide();//隱藏
- 獲取元素$node 的 屬性: id丑慎、src、title瓤摧, 修改以上屬性
//獲得
$node.attr('id');
$node.attr('src');
$node.attr('title');
//修改
$node.attr('id', 'newid');
$node.attr('src', 'newsrc');
$node.attr('title', 'newtitle');
- 給$node 添加自定義屬性data-src
$node.attr('data-src',str)
$node.data("src",str)
- 在$ct 內(nèi)部最開頭添加元素$node
$(".ct").prepend($node);
- 在$ct 內(nèi)部最末尾添加元素$node
$(".ct").append($node);
- 刪除$node
$node.remove();
- 把$ct里內(nèi)容清空
$(".ct").empty();
- 在$ct 里設(shè)置 html <div class="btn"></div>
$(".ct").html('<div class="btn"></div>');
- 獲取竿裂、設(shè)置$node 的寬度、高度(分別不包括內(nèi)邊距照弥、包括內(nèi)邊距腻异、包括邊框、包括外邊距)
//不包括內(nèi)邊距
$node.width();//獲取寬度
$node.height();//獲取高度
$node.width('value');//設(shè)置寬度
$node.height('value');//設(shè)置高度
//包括內(nèi)邊距
$node.innerWidth();//獲取包括內(nèi)邊距的寬度
$node.innerHeight();//獲取包括內(nèi)邊距的高度
$node.innerWidth('value');//設(shè)置包括內(nèi)邊距的寬度
$node.innerHeight('value');//設(shè)置包括內(nèi)邊距的高度
//包括邊框
$node.outerWidth();//獲取包括邊框?qū)挾?$node.outerHeight();//獲取包括邊框高度
$node.outerWidth('value');//設(shè)置包括邊框?qū)挾?$node.outerHeight('value');//設(shè)置包括邊框高度
//包括外邊距
$node.outerWidth(true);//獲取包括外邊距寬度
$node.outerHeight(true);//獲取包括外邊距高度
- 獲取窗口滾動(dòng)條垂直滾動(dòng)距離
$(window).scrollTop()
- 獲取$node 到根節(jié)點(diǎn)水平这揣、垂直偏移距離
$node.offset().left
$node.offset().top
- 修改$node 的樣式悔常,字體顏色設(shè)置紅色,字體大小設(shè)置14px
$node.css({
'color': 'red',
'font-size': '14px';
});
- 遍歷節(jié)點(diǎn)给赞,把每個(gè)節(jié)點(diǎn)里面的文本內(nèi)容重復(fù)一遍
$node.each(function(){
console.log($(this).text());
});
- 從$ct 里查找 class 為 .item的子元素
$(".ct").find(".item");
- 獲取$ct 里面的所有孩子
$('.ct').children()
- 對(duì)于$node机打,向上找到 class 為'.ct'的父親,在從該父親找到'.panel'的孩子
$node.parents('.ct').find('.panel')
- 獲取選擇元素的數(shù)量
$node.length;
- 獲取當(dāng)前元素在兄弟中的排行
$node.index()
題目7:
https://renshaopeng.github.io/test/task15-7.html
代碼