jQuery 中, $(document).ready()是什么意思?
當(dāng)DOM加載完成后執(zhí)行該函數(shù)
$node.html()和$node.text()的區(qū)別?
- $node.html():返回該節(jié)點(diǎn)下的html內(nèi)容(包括html標(biāo)簽)。
- $node.text():返回該節(jié)點(diǎn)下的文本內(nèi)容(不包括html標(biāo)簽)。
$.extend 的作用和用法?
$.extend( [deep ], target, object1 [, objectN ] )
deep:如果是 true,合并成為遞歸(又叫做深拷貝)
target:對(duì)象擴(kuò)展
object1:一個(gè)對(duì)象,它包含額外的屬性合并到第一個(gè)參數(shù).
objectN:包含額外的屬性合并到第一個(gè)參數(shù)
當(dāng)我們提供兩個(gè)或多個(gè)對(duì)象給$.extend(),對(duì)象的所有屬性都添加到目標(biāo)對(duì)象(target參數(shù))。如果只有一個(gè)參數(shù)提供給$.extend(),這意味著目標(biāo)參數(shù)被省略
在默認(rèn)情況下,通過(guò)$.extend()合并操作不是遞歸的;如果第一個(gè)對(duì)象的屬性本身是一個(gè)對(duì)象或數(shù)組,那么它將完全用第二個(gè)對(duì)象相同的key重寫(xiě)一個(gè)屬性。這些值不會(huì)被合并。
var object1 = {
apple: 0,
banana: { weight: 52, price: 100 },
cherry: 97
};
var object2 = {
banana: { price: 200 },
durian: 100
};
$.extend( object1, object2 );
console.log(object1);//
object1 = {
apple: 0,
banana: { price: 200 },
cherry: 97,
durian: 100
};
采用遞歸方式合并兩個(gè)對(duì)象,并修改第一個(gè)對(duì)象。
var object1 = {
apple: 0,
banana: { weight: 52, price: 100 },
cherry: 97
};
var object2 = {
banana: { price: 200 },
durian: 100
};
$.extend( true, object1, object2 );
console.log(object1);//
object1 = {
apple: 0,
banana: { weight:52,price: 200 },
cherry: 97,
durian: 100
};
jQuery 的鏈?zhǔn)秸{(diào)用是什么?
jQuery鏈?zhǔn)秸{(diào)用:在對(duì)象上一次性調(diào)動(dòng)多個(gè)方法
$(this).addClass("hover").siblings().removeClass("hover")
因?yàn)榇蟛糠謱?duì)象方法的最后是return this,所以有了鏈?zhǔn)秸{(diào)用,簡(jiǎn)易代碼。
jQuery 中 data 函數(shù)的作用
jQuery.data( element, key, value )
element:要存儲(chǔ)數(shù)據(jù)的DOM對(duì)象
key:存儲(chǔ)的數(shù)據(jù)名
value:新數(shù)據(jù)值
jQuery.data() 方法允許我們?cè)贒OM元素上附加任意類(lèi)型的數(shù)據(jù),避免了循環(huán)引用的內(nèi)存泄漏風(fēng)險(xiǎn)。如果 DOM 元素是通過(guò) jQuery 方法刪除的或者當(dāng)用戶(hù)離開(kāi)頁(yè)面時(shí),jQuery 同時(shí)也會(huì)移除添加在上面的數(shù)據(jù)。
以下功能對(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('id','value')
$node.attr('src')
$node.attr('src','value')
$node.attr('title')
$node.attr('title','value')
給$node 添加自定義屬性data-src
$node.attr('data-src','src')在$ct 內(nèi)部最開(kā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)邊距、包括邊框、包括外邊距)
$node.width() //獲取寬度,只有內(nèi)容,不包括內(nèi)邊距
$node.width('value') //設(shè)置寬度,只有內(nèi)容,不包括內(nèi)邊距
$node.height() //獲取高度,只有內(nèi)容,不包括內(nèi)邊距
$node.height('value') //設(shè)置高度,只有內(nèi)容,不包括內(nèi)邊距
$node.innerWidth() //獲取寬度,內(nèi)容+內(nèi)邊距
$node.innerHeight() //獲取高度,內(nèi)容+內(nèi)邊距
$node.outerWidth() //獲取寬度,內(nèi)容+內(nèi)邊距+邊框
$node.outerHeight() //獲取高度,內(nèi)容+內(nèi)邊距+邊框
$node.outerWidth(true) //獲取寬度,內(nèi)容+內(nèi)邊距+邊框+外邊距
$node.outerHeight(true) //獲取高度,內(nèi)容+內(nèi)邊距+邊框+外邊距
獲取窗口滾動(dòng)條垂直滾動(dòng)距離
$(window).scrollTop()獲取$node 到根節(jié)點(diǎn)水平、垂直偏移距離
$node.offset()修改$node 的樣式,字體顏色設(shè)置紅色,字體大小設(shè)置14px
$node.css({'color':'red','font-size':'14px'})遍歷節(jié)點(diǎn),把每個(gè)節(jié)點(diǎn)里面的文本內(nèi)容重復(fù)一遍
$each(function(){
$(this).text()
})
從$ct 里查找 class 為 .item的子元素
$('.ct').find('.item')獲取$ct 里面的所有孩子
$('.ct').children()對(duì)于$node,向上找到 class 為'.ct'的父親,在從該父親找到'.panel'的孩子
$node.parents('.ct').find('.panel')獲取選擇元素的數(shù)量
$node.length
$node.size()
- 獲取當(dāng)前元素在兄弟中的排行
$node.index()