each()
為每個(gè)匹配元素規(guī)定要運(yùn)行的函數(shù),返回 false 可用于及早停止循環(huán)。
$("button").click(function(){
$("li").each(function(){
alert($(this).text())
});
}); 輸出每個(gè) <li> 元素的文本
map()
用于使用指定函數(shù)處理數(shù)組中的每個(gè)元素(或?qū)ο蟮拿總€(gè)屬性),并將處理結(jié)果封裝為新的數(shù)組返回。
注:
- 在jQuery 1.6 之前,該函數(shù)只支持遍歷數(shù)組;從 1.6 開始,該函數(shù)也支持遍歷對象。
- map()還會(huì)為函數(shù)傳入兩個(gè)參數(shù):其一是當(dāng)前迭代的元素或?qū)傩灾?,其二是?dāng)前迭代項(xiàng)的數(shù)組索引或?qū)ο髮傩悦?/li>
- 該函數(shù)返回值將作為結(jié)果數(shù)組中的一個(gè)元素,如果返回值為null或undefined,則不會(huì)被添加到結(jié)果數(shù)組中。
$('div').map(function(i, ele){
return this.id;
});
extend()
用于將一個(gè)或多個(gè)對象的內(nèi)容合并到目標(biāo)對象。
- 如果只為$.extend()指定了一個(gè)參數(shù),則意味著參數(shù)target被省略。此時(shí),target就是jQuery對象本身。通過這種方式,我們可以為全局對象jQuery添加新的函數(shù)。
- 如果多個(gè)對象具有相同的屬性,則后者會(huì)覆蓋前者的屬性值。
<div id="log"></div>
<script>
$(function () {
var object1 = {
apple: 0,
banana: {weight: 52, price: 100},
cherry: 97
};
var object2 = {
banana: {price: 200},
durian: 100
};
/* object2 合并到 object1 中 */
$.extend(object1, object2);
var printObj = typeof JSON != "undefined" ? JSON.stringify : function(obj) {
var arr = [];
$.each(obj, function(key, val) {
var next = key + ": ";
next += $.isPlainObject(val) ? printObj(val) : val;
arr.push( next );
});
return "{ " + arr.join(", ") + " }";
};
$("#log").append( printObj(object1) );
})
</script> 遍歷數(shù)組元素,并修改第一個(gè)對象
clone()
生成被選元素的副本,包含子節(jié)點(diǎn)、文本和屬性。
$("button").click(function(){
$("p").clone().appendTo("body");
}); 克隆所有的 <p> 元素,并插入到 <body> 元素的結(jié)尾
index()
返回指定元素相對于其他指定元素的 index 位置。
- 沒參數(shù)返回第一個(gè)元素index
- 如果參數(shù)是DOM對象或者jQuery對象,則返回參數(shù)在集合中的index
- 如果參數(shù)是選擇器,返回第一個(gè)匹配元素index,沒有找到返回-1
$("li").click(function(){
alert($(this).index());
}); 獲得被點(diǎn)擊的 <li> 元素相對于它的同級元素的 index
ready()
當(dāng) DOM(document object model 文檔對象模型)加載完畢且頁面完全加載(包括圖像)時(shí)發(fā)生 ready 事件。由于該事件在文檔就緒后發(fā)生,因此把所有其他的 jQuery 事件和函數(shù)置于該事件中是非常好的做法。如上面的實(shí)例所示。ready() 方法規(guī)定當(dāng) ready 事件發(fā)生時(shí)執(zhí)行的代碼。
$(document).ready(function(){
$("button").click(function(){
$("p").slideToggle();
});
}); 使用 ready() 來使函數(shù)在文檔加載后是可用的